forked from AFPy/python-docs-fr
310 lines
9.2 KiB
Plaintext
310 lines
9.2 KiB
Plaintext
# SOME DESCRIPTIVE TITLE.
|
|
# Copyright (C) 2001-2016, Python Software Foundation
|
|
# This file is distributed under the same license as the Python package.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
#
|
|
#, fuzzy
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: Python 3.6\n"
|
|
"Report-Msgid-Bugs-To: \n"
|
|
"POT-Creation-Date: 2016-10-30 10:40+0100\n"
|
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
#: ../Doc/howto/instrumentation.rst:5
|
|
msgid "Instrumenting CPython with DTrace and SystemTap"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:7
|
|
msgid "David Malcolm"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:8
|
|
msgid "Łukasz Langa"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:10
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:14
|
|
msgid "filter which processes are to be observed"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:15
|
|
msgid "gather data from the processes of interest"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:16
|
|
msgid "generate reports on the data"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:18
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:28
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:35
|
|
msgid "Enabling the static markers"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:37
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:41
|
|
msgid "On a Linux machine, this can be done via::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:45
|
|
msgid "or::"
|
|
msgstr "ou : ::"
|
|
|
|
#: ../Doc/howto/instrumentation.rst:50
|
|
msgid "CPython must then be configured `--with-dtrace`::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:54
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:71
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:79
|
|
msgid ""
|
|
"If you've built Python as a shared library (with --enable-shared), you need "
|
|
"to look instead within the shared library. For example:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:87
|
|
msgid "Sufficiently modern readelf can print the metadata:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:126
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:132
|
|
msgid "Static DTrace probes"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:134
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:173 ../Doc/howto/instrumentation.rst:231
|
|
msgid "It can be invoked like this:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:179 ../Doc/howto/instrumentation.rst:239
|
|
msgid "The output looks like this::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:202
|
|
msgid "Static SystemTap markers"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:204
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:208
|
|
msgid ""
|
|
"For example, this SystemTap script can be used to show the call/return "
|
|
"hierarchy of a Python script:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:248
|
|
msgid "where the columns are:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:250
|
|
msgid "time in microseconds since start of script"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:252
|
|
msgid "name of executable"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:254
|
|
msgid "PID of process"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:256
|
|
msgid ""
|
|
"and the remainder indicates the call/return hierarchy as the script executes."
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:258
|
|
msgid ""
|
|
"For a `--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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:264
|
|
msgid "should instead read::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:268
|
|
msgid "(assuming a debug build of CPython 3.6)"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:272
|
|
msgid "Available static markers"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:278
|
|
msgid ""
|
|
"This marker indicates that execution of a Python function has begun. It is "
|
|
"only triggered for pure-Python (bytecode) functions."
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:281
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:285
|
|
msgid ""
|
|
"``$arg1`` : ``(const char *)`` filename, accessible using "
|
|
"``user_string($arg1)``"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:287
|
|
msgid ""
|
|
"``$arg2`` : ``(const char *)`` function name, accessible using "
|
|
"``user_string($arg2)``"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:290
|
|
msgid "``$arg3`` : ``int`` line number"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:294
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:298
|
|
msgid "The arguments are the same as for :c:func:`function__entry`"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:302
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:306
|
|
msgid "The arguments are the same as for :c:func:`function__entry`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:310
|
|
msgid ""
|
|
"Fires when the Python interpreter starts a garbage collection cycle. "
|
|
"``arg0`` is the generation to scan, like :func:`gc.collect()`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:315
|
|
msgid ""
|
|
"Fires when the Python interpreter finishes a garbage collection cycle. "
|
|
"``arg0`` is the number of collected objects."
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:320
|
|
msgid "SystemTap Tapsets"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:322
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:326
|
|
msgid "Here is a tapset file, based on a non-shared build of CPython:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:349
|
|
msgid ""
|
|
"If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/"
|
|
"systemtap/tapset``), then these additional probepoints become available:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:355
|
|
msgid ""
|
|
"This probe point indicates that execution of a Python function has begun. It "
|
|
"is only triggered for pure-python (bytecode) functions."
|
|
msgstr ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:360
|
|
msgid ""
|
|
"This probe point is the converse of :c:func:`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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:367
|
|
msgid "Examples"
|
|
msgstr "Exemples"
|
|
|
|
#: ../Doc/howto/instrumentation.rst:368
|
|
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 ""
|
|
|
|
#: ../Doc/howto/instrumentation.rst:387
|
|
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 ""
|