# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-15 22:33+0100\n" "PO-Revision-Date: 2021-11-06 19:31+0100\n" "Last-Translator: Jean Abou Samra \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.0\n" #: howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" msgstr "Instrumenter CPython avec DTrace et SystemTap" #: howto/instrumentation.rst:0 msgid "author" msgstr "auteur" #: howto/instrumentation.rst:9 msgid "David Malcolm" msgstr "David Malcolm" #: howto/instrumentation.rst:10 msgid "Łukasz Langa" msgstr "Łukasz Langa" #: howto/instrumentation.rst:12 msgid "" "DTrace and SystemTap are monitoring tools, each providing a way to inspect " "what the processes on a computer system are doing. They both use domain-" "specific languages allowing a user to write scripts which:" msgstr "" "*DTrace* et *SystemTap* sont des outils de surveillance, chacun fournissant " "un moyen de d'inspecter ce que font les processus d'un système informatique. " "Ils utilisent tous les deux des langages dédiés permettant à un utilisateur " "d'écrire des scripts qui permettent de :" #: howto/instrumentation.rst:16 msgid "filter which processes are to be observed" msgstr "Filtrer les processus à observer." #: howto/instrumentation.rst:17 msgid "gather data from the processes of interest" msgstr "Recueillir des données sur le processus choisi." #: howto/instrumentation.rst:18 msgid "generate reports on the data" msgstr "Générer des rapports sur les données." #: howto/instrumentation.rst:20 msgid "" "As of Python 3.6, CPython can be built with embedded \"markers\", also known " "as \"probes\", that can be observed by a DTrace or SystemTap script, making " "it easier to monitor what the CPython processes on a system are doing." msgstr "" "À partir de Python 3.6, CPython peut être compilé avec des « marqueurs » " "intégrés, aussi appelés « sondes », qui peuvent être observés par un script " "*DTrace* ou *SystemTap*, ce qui facilite le suivi des processus CPython." #: howto/instrumentation.rst:27 msgid "" "DTrace markers are implementation details of the CPython interpreter. No " "guarantees are made about probe compatibility between versions of CPython. " "DTrace scripts can stop working or work incorrectly without warning when " "changing CPython versions." msgstr "" "Les marqueurs DTrace sont des détails d'implémentation de l'interpréteur " "CPython. Aucune garantie n'est donnée quant à la compatibilité des sondes " "entre les versions de CPython. Les scripts DTrace peuvent s'arrêter de " "fonctionner ou fonctionner incorrectement sans avertissement lors du " "changement de version de CPython." #: howto/instrumentation.rst:34 msgid "Enabling the static markers" msgstr "Activer les marqueurs statiques" #: howto/instrumentation.rst:36 msgid "" "macOS comes with built-in support for DTrace. On Linux, in order to build " "CPython with the embedded markers for SystemTap, the SystemTap development " "tools must be installed." msgstr "" "macOS est livré avec un support intégré pour *DTrace*. Sous Linux, pour " "construire CPython avec les marqueurs embarqués pour *SystemTap*, les outils " "de développement *SystemTap* doivent être installés." #: howto/instrumentation.rst:40 msgid "On a Linux machine, this can be done via::" msgstr "Sur une machine Linux, cela se fait via ::" #: howto/instrumentation.rst:44 msgid "or::" msgstr "ou ::" #: howto/instrumentation.rst:49 msgid "" "CPython must then be :option:`configured with the --with-dtrace option <--" "with-dtrace>`:" msgstr "CPython doit être configuré avec l'option :option:`--with-dtrace` :" #: howto/instrumentation.rst:56 msgid "" "On macOS, you can list available DTrace probes by running a Python process " "in the background and listing all probes made available by the Python " "provider::" msgstr "" "Sous macOS, vous pouvez lister les sondes *DTrace* disponibles en exécutant " "un processus Python en arrière-plan et en listant toutes les sondes mises à " "disposition par le fournisseur Python ::" #: howto/instrumentation.rst:73 msgid "" "On Linux, you can verify if the SystemTap static markers are present in the " "built binary by seeing if it contains a \".note.stapsdt\" section." msgstr "" "Sous Linux, pour vérifier que les marqueurs statiques *SystemTap* sont " "présents dans le binaire compilé, il suffit de regarder s'il contient une " "section ``.note.stapsdt``." #: howto/instrumentation.rst:81 msgid "" "If you've built Python as a shared library (with the :option:`--enable-" "shared` configure option), you need to look instead within the shared " "library. For example::" msgstr "" "Si vous avez compilé Python en tant que bibliothèque partagée (avec " "l'option :option:`--enable-shared` du script ``configure``), vous devez " "plutôt regarder dans la bibliothèque partagée. Par exemple ::" #: howto/instrumentation.rst:88 msgid "Sufficiently modern readelf can print the metadata::" msgstr "" "Une version suffisamment moderne de *readelf* peut afficher les " "métadonnées ::" #: howto/instrumentation.rst:125 #, fuzzy msgid "" "The above metadata contains information for SystemTap describing how it can " "patch strategically placed machine code instructions to enable the tracing " "hooks used by a SystemTap script." msgstr "" "Les métadonnées ci-dessus contiennent des informations pour *SystemTap* " "décrivant comment il peut mettre à jour des instructions de code machine " "stratégiquement placées pour activer les crochets de traçage utilisés par un " "script *SystemTap*." #: howto/instrumentation.rst:131 msgid "Static DTrace probes" msgstr "Sondes DTrace statiques" #: howto/instrumentation.rst:133 msgid "" "The following example DTrace script can be used to show the call/return " "hierarchy of a Python script, only tracing within the invocation of a " "function called \"start\". In other words, import-time function invocations " "are not going to be listed:" msgstr "" "L'exemple suivant de script *DTrace* montre la hiérarchie d'appel/retour " "d'un script Python, en ne traçant que l'invocation d'une fonction ``start``. " "En d'autres termes, les appels de fonctions lors de la phase d'import ne " "seront pas répertoriées :" #: howto/instrumentation.rst:230 msgid "It can be invoked like this::" msgstr "Il peut être utilisé de cette manière ::" #: howto/instrumentation.rst:236 msgid "The output looks like this:" msgstr "La sortie ressemble à ceci :" #: howto/instrumentation.rst:201 msgid "Static SystemTap markers" msgstr "Marqueurs statiques *SystemTap*" #: howto/instrumentation.rst:203 msgid "" "The low-level way to use the SystemTap integration is to use the static " "markers directly. This requires you to explicitly state the binary file " "containing them." msgstr "" "La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " "directement les marqueurs statiques. Pour cela vous devez pointer " "explicitement le fichier binaire qui les contient." #: howto/instrumentation.rst:207 msgid "" "For example, this SystemTap script can be used to show the call/return " "hierarchy of a Python script:" msgstr "" "Par exemple, ce script *SystemTap* peut être utilisé pour afficher la " "hiérarchie d'appel/retour d'un script Python :" #: howto/instrumentation.rst:247 msgid "where the columns are:" msgstr "où les colonnes sont :" #: howto/instrumentation.rst:249 msgid "time in microseconds since start of script" msgstr "temps en microsecondes depuis le début du script" #: howto/instrumentation.rst:251 msgid "name of executable" msgstr "nom de l'exécutable" #: howto/instrumentation.rst:253 msgid "PID of process" msgstr "PID du processus" #: howto/instrumentation.rst:255 msgid "" "and the remainder indicates the call/return hierarchy as the script executes." msgstr "" "et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute." #: howto/instrumentation.rst:257 msgid "" "For a :option:`--enable-shared` build of CPython, the markers are contained " "within the libpython shared library, and the probe's dotted path needs to " "reflect this. For example, this line from the above example:" msgstr "" "Pour une compilation :option:`--enable-shared` de CPython, les marqueurs " "sont contenus dans la bibliothèque partagée *libpython*, et le chemin du " "module de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-" "dessus :" #: howto/instrumentation.rst:265 msgid "should instead read:" msgstr "doit plutôt se lire comme :" #: howto/instrumentation.rst:271 msgid "(assuming a :ref:`debug build ` of CPython 3.6)" msgstr "" "(en supposant une version de CPython 3.6 compilée avec le :ref:`débogage " "` activé)" #: howto/instrumentation.rst:275 msgid "Available static markers" msgstr "Marqueurs statiques disponibles" #: howto/instrumentation.rst:279 msgid "" "This marker indicates that execution of a Python function has begun. It is " "only triggered for pure-Python (bytecode) functions." msgstr "" "Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il " "n'est déclenché que pour les fonctions en Python pur (code intermédiaire)." #: howto/instrumentation.rst:282 msgid "" "The filename, function name, and line number are provided back to the " "tracing script as positional arguments, which must be accessed using " "``$arg1``, ``$arg2``, ``$arg3``:" msgstr "" "Le nom de fichier, le nom de la fonction et le numéro de ligne sont renvoyés " "au script de traçage sous forme d'arguments positionnels, auxquels il faut " "accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :" #: howto/instrumentation.rst:286 msgid "" "``$arg1`` : ``(const char *)`` filename, accessible using " "``user_string($arg1)``" msgstr "" "``$arg1`` : ``(const char *)`` nom de fichier, accessible via " "``user_string($arg1)``" #: howto/instrumentation.rst:288 msgid "" "``$arg2`` : ``(const char *)`` function name, accessible using " "``user_string($arg2)``" msgstr "" "``$arg2`` : ``(const char *)`` nom de la fonction, accessible via " "``user_string($arg2)``" #: howto/instrumentation.rst:291 msgid "``$arg3`` : ``int`` line number" msgstr "``$arg3`` : numéro de ligne ``int``" #: howto/instrumentation.rst:295 msgid "" "This marker is the converse of :c:func:`function__entry`, and indicates that " "execution of a Python function has ended (either via ``return``, or via an " "exception). It is only triggered for pure-Python (bytecode) functions." msgstr "" "Ce marqueur est l'inverse de :c:func:`function__entry`, et indique que " "l'exécution d'une fonction Python est terminée (soit via ``return``, soit " "via une exception). Il n'est déclenché que pour les fonctions en Python pur " "(code intermédiaire)." #: howto/instrumentation.rst:299 msgid "The arguments are the same as for :c:func:`function__entry`" msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`" #: howto/instrumentation.rst:303 msgid "" "This marker indicates a Python line is about to be executed. It is the " "equivalent of line-by-line tracing with a Python profiler. It is not " "triggered within C functions." msgstr "" "Ce marqueur indique qu'une ligne Python est sur le point d'être exécutée. " "C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il " "n'est pas déclenché dans les fonctions C." #: howto/instrumentation.rst:307 msgid "The arguments are the same as for :c:func:`function__entry`." msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`." #: howto/instrumentation.rst:311 msgid "" "Fires when the Python interpreter starts a garbage collection cycle. " "``arg0`` is the generation to scan, like :func:`gc.collect()`." msgstr "" "Fonction appelée lorsque l'interpréteur Python lance un cycle de collecte du " "ramasse-miettes. ``arg0`` est la génération à scanner, comme :func:`gc." "collect()`." #: howto/instrumentation.rst:316 msgid "" "Fires when the Python interpreter finishes a garbage collection cycle. " "``arg0`` is the number of collected objects." msgstr "" "Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte " "du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés." #: howto/instrumentation.rst:321 msgid "" "Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " "is the module name." msgstr "" "Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger " "le module. ``arg0`` est le nom du module." #: howto/instrumentation.rst:328 msgid "" "Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is " "the module name, ``arg1`` indicates if module was successfully loaded." msgstr "" "Fonction appelée après que la fonction ``find_and_load`` du module :mod:" "`importlib` soit appelée. ``arg0`` est le nom du module, ``arg1`` indique si " "le module a été chargé avec succès." #: howto/instrumentation.rst:337 msgid "" "Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is " "the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a " "tuple object." msgstr "" "Fonction appelée quand les fonctions :func:`sys.audit` ou :c:func:" "`PySys_Audit` sont appelées. ``arg0`` est le nom de l'évènement de type " "chaîne de caractère C. ``arg1`` est un pointeur sur un *n*-uplet d'objet de " "type :c:type:`PyObject`." #: howto/instrumentation.rst:345 msgid "SystemTap Tapsets" msgstr "*Tapsets* de *SystemTap*" #: howto/instrumentation.rst:347 msgid "" "The higher-level way to use the SystemTap integration is to use a " "\"tapset\": SystemTap's equivalent of a library, which hides some of the " "lower-level details of the static markers." msgstr "" "La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " "un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui " "permet de masquer les détails de niveau inférieur des marqueurs statiques." #: howto/instrumentation.rst:351 msgid "Here is a tapset file, based on a non-shared build of CPython:" msgstr "" "Voici un fichier *tapset*, basé sur une version non partagée compilée de " "CPython :" #: howto/instrumentation.rst:374 msgid "" "If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" "systemtap/tapset``), then these additional probepoints become available:" msgstr "" "Si ce fichier est installé dans le répertoire *tapset* de *SystemTap* (par " "exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires " "deviennent disponibles :" #: howto/instrumentation.rst:380 msgid "" "This probe point indicates that execution of a Python function has begun. It " "is only triggered for pure-Python (bytecode) functions." msgstr "" "Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle " "n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)." #: howto/instrumentation.rst:385 msgid "" "This probe point is the converse of ``python.function.return``, and " "indicates that execution of a Python function has ended (either via " "``return``, or via an exception). It is only triggered for pure-Python " "(bytecode) functions." msgstr "" "Cette sonde est l'inverse de ``python.function.return``, et indique que " "l'exécution d'une fonction Python est terminée (soit via ``return``, soit " "via une exception). Elle est uniquement déclenchée pour les fonctions en " "Python pur (code intermédiaire ou *bytecode*)." #: howto/instrumentation.rst:392 msgid "Examples" msgstr "Exemples" #: howto/instrumentation.rst:393 msgid "" "This SystemTap script uses the tapset above to more cleanly implement the " "example given above of tracing the Python function-call hierarchy, without " "needing to directly name the static markers:" msgstr "" "Ce script *SystemTap* utilise le *tapset* ci-dessus pour implémenter plus " "proprement l'exemple précédent de traçage de la hiérarchie des appels de " "fonctions Python, sans avoir besoin de nommer directement les marqueurs " "statiques :" #: howto/instrumentation.rst:412 #, fuzzy msgid "" "The following script uses the tapset above to provide a top-like view of all " "running CPython code, showing the top 20 most frequently entered bytecode " "frames, each second, across the whole system:" msgstr "" "Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de " "l'ensemble du code CPython en cours d'exécution, montrant les 20 cadres de " "la pile d'appel (*stack frames*) les plus fréquemment utilisées du code " "intermédiaire, chaque seconde, sur l'ensemble du système :"