@@ -11,7 +11,7 @@ msgid ""
1111msgstr ""
1212"Project-Id-Version :Python 3.9\n "
1313"Report-Msgid-Bugs-To :\n "
14- "POT-Creation-Date :2025-01-03 16:35 +0000\n "
14+ "POT-Creation-Date :2025-09-22 21:56 +0000\n "
1515"PO-Revision-Date :2025-09-22 17:54+0000\n "
1616"Last-Translator :python-doc bot, 2025\n "
1717"Language-Team :Chinese (China) (https://app.transifex.com/python-doc/teams/5390/zh_CN/)\n "
@@ -23,15 +23,15 @@ msgstr ""
2323
2424#: ../../howto/instrumentation.rst:7
2525msgid "Instrumenting CPython with DTrace and SystemTap"
26- msgstr ""
26+ msgstr "使用 DTrace 和 SystemTap 检测CPython "
2727
28- #: ../../howto/instrumentation.rst:0
28+ #: ../../howto/instrumentation.rst:0 ../../howto/instrumentation.rst:0
2929msgid "author"
3030msgstr "作者"
3131
3232#: ../../howto/instrumentation.rst:9
3333msgid "David Malcolm"
34- msgstr ""
34+ msgstr "David Malcolm "
3535
3636#: ../../howto/instrumentation.rst:10
3737msgid "Łukasz Langa"
@@ -43,25 +43,28 @@ msgid ""
4343"what the processes on a computer system are doing. They both use domain-"
4444"specific languages allowing a user to write scripts which:"
4545msgstr ""
46+ "DTrace和SystemTap是监控工具,它们都提供了一种检查计算机系统上的进程的方法。 它们都使用特定领域的语言,允许用户编写脚本,其中:"
4647
4748#: ../../howto/instrumentation.rst:16
4849msgid "filter which processes are to be observed"
49- msgstr ""
50+ msgstr "进程监视的过滤器 "
5051
5152#: ../../howto/instrumentation.rst:17
5253msgid "gather data from the processes of interest"
53- msgstr ""
54+ msgstr "从感兴趣的进程中收集数据 "
5455
5556#: ../../howto/instrumentation.rst:18
5657msgid "generate reports on the data"
57- msgstr ""
58+ msgstr "生成有关数据的报告 "
5859
5960#: ../../howto/instrumentation.rst:20
6061msgid ""
6162"As of Python 3.6, CPython can be built with embedded\" markers\" , also known"
6263" as\" probes\" , that can be observed by a DTrace or SystemTap script, making"
6364" it easier to monitor what the CPython processes on a system are doing."
6465msgstr ""
66+ "从Python "
67+ "3.6开始,CPython可以使用嵌入式“标记”构建,也称为“探测器”,可以通过DTrace或SystemTap脚本观察,从而更容易监视系统上的CPython进程正在做什么。"
6568
6669#: ../../howto/instrumentation.rst:27
6770msgid ""
@@ -70,21 +73,24 @@ msgid ""
7073"DTrace scripts can stop working or work incorrectly without warning when "
7174"changing CPython versions."
7275msgstr ""
76+ "DTrace标记是CPython解释器的实现细节。 不保证CPython版本之间的探针兼容性。 "
77+ "更改CPython版本时,DTrace脚本可能会停止工作或无法正常工作而不会发出警告。"
7378
7479#: ../../howto/instrumentation.rst:34
7580msgid "Enabling the static markers"
76- msgstr ""
81+ msgstr "启用静态标记 "
7782
7883#: ../../howto/instrumentation.rst:36
7984msgid ""
8085"macOS comes with built-in support for DTrace. On Linux, in order to build "
8186"CPython with the embedded markers for SystemTap, the SystemTap development "
8287"tools must be installed."
8388msgstr ""
89+ "macOS内置了对DTrace的支持。 在Linux上,为了使用SystemTap的嵌入式标记构建CPython,必须安装SystemTap开发工具。"
8490
8591#: ../../howto/instrumentation.rst:40
8692msgid "On a Linux machine, this can be done via::"
87- msgstr ""
93+ msgstr "在Linux机器上,这可以通过: "
8894
8995#: ../../howto/instrumentation.rst:44
9096msgid "or::"
@@ -99,13 +105,13 @@ msgid ""
99105"On macOS, you can list available DTrace probes by running a Python process "
100106"in the background and listing all probes made available by the Python "
101107"provider::"
102- msgstr ""
108+ msgstr "在macOS上,您可以通过在后台运行Python进程列出可用的DTrace探测器,并列出Python程序提供的所有探测器: "
103109
104110#: ../../howto/instrumentation.rst:72
105111msgid ""
106112"On Linux, you can verify if the SystemTap static markers are present in the "
107113"built binary by seeing if it contains a\" .note.stapsdt\" section."
108- msgstr ""
114+ msgstr "在Linux上,您可以通过查看是否包含“.note.stapsdt”部分来验证构建的二进制文件中是否存在SystemTap静态标记。 "
109115
110116#: ../../howto/instrumentation.rst:80
111117msgid ""
@@ -115,7 +121,7 @@ msgstr ""
115121
116122#: ../../howto/instrumentation.rst:86
117123msgid "Sufficiently modern readelf can print the metadata::"
118- msgstr ""
124+ msgstr "足够现代的readelf命令可以打印元数据: "
119125
120126#: ../../howto/instrumentation.rst:123
121127msgid ""
@@ -126,7 +132,7 @@ msgstr ""
126132
127133#: ../../howto/instrumentation.rst:129
128134msgid "Static DTrace probes"
129- msgstr ""
135+ msgstr "静态DTrace探针 "
130136
131137#: ../../howto/instrumentation.rst:131
132138msgid ""
@@ -135,53 +141,55 @@ msgid ""
135141"function called\" start\" . In other words, import-time function invocations "
136142"are not going to be listed:"
137143msgstr ""
144+ "下面的 DTrace 脚本示例可以用来显示一个 Python 脚本的调用/返回层次结构,只在调用名为\" start\" "
145+ "的函数内进行跟踪。换句话说,导入时的函数调用不会被列出。"
138146
139147#: ../../howto/instrumentation.rst:170 ../../howto/instrumentation.rst:228
140148msgid "It can be invoked like this::"
141- msgstr ""
149+ msgstr "它可以这样调用:: "
142150
143151#: ../../howto/instrumentation.rst:174 ../../howto/instrumentation.rst:234
144152msgid "The output looks like this:"
145153msgstr "输出结果会像这样:"
146154
147155#: ../../howto/instrumentation.rst:199
148156msgid "Static SystemTap markers"
149- msgstr ""
157+ msgstr "静态SystemTap标记 "
150158
151159#: ../../howto/instrumentation.rst:201
152160msgid ""
153161"The low-level way to use the SystemTap integration is to use the static "
154162"markers directly. This requires you to explicitly state the binary file "
155163"containing them."
156- msgstr ""
164+ msgstr "使用 SystemTap 集成的底层方法是直接使用静态标记。 这需要你显式地说明包含它们的二进制文件。 "
157165
158166#: ../../howto/instrumentation.rst:205
159167msgid ""
160168"For example, this SystemTap script can be used to show the call/return "
161169"hierarchy of a Python script:"
162- msgstr ""
170+ msgstr "例如,这个SystemTap脚本可以用来显示Python脚本的调用/返回层次结构: "
163171
164172#: ../../howto/instrumentation.rst:245
165173msgid "where the columns are:"
166- msgstr ""
174+ msgstr "其中的列是: "
167175
168176#: ../../howto/instrumentation.rst:247
169177msgid "time in microseconds since start of script"
170- msgstr ""
178+ msgstr "脚本开始后经过的微秒数 "
171179
172180#: ../../howto/instrumentation.rst:249
173181msgid "name of executable"
174- msgstr ""
182+ msgstr "可执行文件的名字 "
175183
176184#: ../../howto/instrumentation.rst:251
177185msgid "PID of process"
178- msgstr ""
186+ msgstr "进程的PID "
179187
180188#: ../../howto/instrumentation.rst:253
181189msgid ""
182190"and the remainder indicates the call/return hierarchy as the script "
183191"executes."
184- msgstr ""
192+ msgstr "其余部分则表示脚本执行时的调用/返回层次结构。 "
185193
186194#: ../../howto/instrumentation.rst:255
187195msgid ""
@@ -192,125 +200,133 @@ msgstr ""
192200
193201#: ../../howto/instrumentation.rst:263
194202msgid "should instead read:"
195- msgstr ""
203+ msgstr "应改为: "
196204
197205#: ../../howto/instrumentation.rst:269
198206msgid "(assuming a debug build of CPython 3.6)"
199207msgstr ""
200208
201209#: ../../howto/instrumentation.rst:273
202210msgid "Available static markers"
203- msgstr ""
211+ msgstr "可用的静态标记 "
204212
205213#: ../../howto/instrumentation.rst:277
206214msgid ""
207215"This marker indicates that execution of a Python function has begun. It is "
208216"only triggered for pure-Python (bytecode) functions."
209- msgstr ""
217+ msgstr "这个标记表示一个Python函数的执行已经开始。它只对纯 Python (字节码)函数触发。 "
210218
211219#: ../../howto/instrumentation.rst:280
212220msgid ""
213221"The filename, function name, and line number are provided back to the "
214222"tracing script as positional arguments, which must be accessed using "
215223"``$arg1``, ``$arg2``, ``$arg3``:"
216- msgstr ""
224+ msgstr "文件名、函数名和行号作为位置参数提供给跟踪脚本,必须使用 ``$arg1``, ``$arg2``, ``$arg3`` 访问: "
217225
218226#: ../../howto/instrumentation.rst:284
219227msgid ""
220228"``$arg1`` : ``(const char *)`` filename, accessible using "
221229"``user_string($arg1)``"
222- msgstr ""
230+ msgstr "``$arg1`` : ``(const char *)`` 文件名,使用 ``user_string($arg1)`` 访问 "
223231
224232#: ../../howto/instrumentation.rst:286
225233msgid ""
226234"``$arg2`` : ``(const char *)`` function name, accessible using "
227235"``user_string($arg2)``"
228- msgstr ""
236+ msgstr "``$arg2`` : ``(const char *)`` 函数名,使用 ``user_string($arg2)`` 访问 "
229237
230238#: ../../howto/instrumentation.rst:289
231239msgid "``$arg3`` : ``int`` line number"
232- msgstr ""
240+ msgstr "``$arg3`` : ``int`` 行号 "
233241
234242#: ../../howto/instrumentation.rst:293
235243msgid ""
236244"This marker is the converse of :c:func:`function__entry`, and indicates that"
237245" execution of a Python function has ended (either via ``return``, or via an "
238246"exception). It is only triggered for pure-Python (bytecode) functions."
239247msgstr ""
248+ "这个标记与 :c:func:`function__entry` 相反,表示Python函数的执行已经结束 (通过 ``return`` 或者异常)。 "
249+ "它只对纯Python (字节码) 函数触发。"
240250
241251#: ../../howto/instrumentation.rst:297
242252msgid "The arguments are the same as for :c:func:`function__entry`"
243- msgstr ""
253+ msgstr "参数和 :c:func:`function__entry` 相同 "
244254
245255#: ../../howto/instrumentation.rst:301
246256msgid ""
247257"This marker indicates a Python line is about to be executed. It is the "
248258"equivalent of line-by-line tracing with a Python profiler. It is not "
249259"triggered within C functions."
250- msgstr ""
260+ msgstr "这个标记表示一个 Python 行即将被执行。它相当于用 Python 分析器逐行追踪。它不会在C函数中触发。 "
251261
252262#: ../../howto/instrumentation.rst:305
253263msgid "The arguments are the same as for :c:func:`function__entry`."
254- msgstr ""
264+ msgstr "参数和 :c:func:`function__entry` 相同 "
255265
256266#: ../../howto/instrumentation.rst:309
257267msgid ""
258268"Fires when the Python interpreter starts a garbage collection cycle. "
259269"``arg0`` is the generation to scan, like :func:`gc.collect()`."
260- msgstr ""
270+ msgstr "当Python解释器启动一个垃圾回收循环时被触发。 ``arg0`` 是要扫描的生成器,如 :func:`gc.collect()`。 "
261271
262272#: ../../howto/instrumentation.rst:314
263273msgid ""
264274"Fires when the Python interpreter finishes a garbage collection cycle. "
265275"``arg0`` is the number of collected objects."
266- msgstr ""
276+ msgstr "当Python解释器完成一个垃圾回收循环时被触发。``arg0`` 是收集到的对象的数量。 "
267277
268278#: ../../howto/instrumentation.rst:319
269279msgid ""
270280"Fires before :mod:`importlib` attempts to find and load the module. ``arg0``"
271281" is the module name."
272- msgstr ""
282+ msgstr "在 :mod:`importlib` 试图查找并加载模块之前被触发。``arg0`` 是模块名称。 "
273283
274284#: ../../howto/instrumentation.rst:326
275285msgid ""
276286"Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is"
277287" the module name, ``arg1`` indicates if module was successfully loaded."
278288msgstr ""
289+ "在 :mod:`importlib` 的 find_and_load 函数被调用后被触发 。``arg0`` 是模块名称, ``arg1`` "
290+ "表示模块是否成功加载。"
279291
280292#: ../../howto/instrumentation.rst:335
281293msgid ""
282294"Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is"
283295" the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a "
284296"tuple object."
285297msgstr ""
298+ "当 :func:`sys.audit` 或 :c:func:`PySys_Audit` 被调用时启动。 ``arg0`` 是事件名称的 C "
299+ "字符串,``arg1`` 是一个指向元组对象的 :c:type:`PyObject` 指针。"
286300
287301#: ../../howto/instrumentation.rst:343
288302msgid "SystemTap Tapsets"
289- msgstr ""
303+ msgstr "SystemTap Tapsets "
290304
291305#: ../../howto/instrumentation.rst:345
292306msgid ""
293307"The higher-level way to use the SystemTap integration is to use a "
294308"\" tapset\" : SystemTap's equivalent of a library, which hides some of the "
295309"lower-level details of the static markers."
296- msgstr ""
310+ msgstr "使用SystemTap集成的更高层次的方法是使用 \" tapset \" 。SystemTap 的等效库,它隐藏了静态标记的一些底层细节。 "
297311
298312#: ../../howto/instrumentation.rst:349
299313msgid "Here is a tapset file, based on a non-shared build of CPython:"
300- msgstr ""
314+ msgstr "这里是一个基于 CPython 的非共享构建的 tapset 文件。 "
301315
302316#: ../../howto/instrumentation.rst:372
303317msgid ""
304318"If this file is installed in SystemTap's tapset directory (e.g. "
305319"``/usr/share/systemtap/tapset``), then these additional probepoints become "
306320"available:"
307321msgstr ""
322+ "如果这个文件安装在 SystemTap 的 tapset 目录下(例如 ``/usr/share/systemtap/tapset`` "
323+ "),那么这些额外的探测点就会变得可用。"
308324
309325#: ../../howto/instrumentation.rst:378
310326msgid ""
311327"This probe point indicates that execution of a Python function has begun. It"
312328" is only triggered for pure-Python (bytecode) functions."
313- msgstr ""
329+ msgstr "这个探针点表示一个Python函数的执行已经开始。它只对纯Python (字节码)函数触发。 "
314330
315331#: ../../howto/instrumentation.rst:383
316332msgid ""
@@ -319,6 +335,8 @@ msgid ""
319335"``return``, or via an exception). It is only triggered for pure-Python "
320336"(bytecode) functions."
321337msgstr ""
338+ "这个探针点是 ``python.function.return`` 的反义操作,表示一个 Python 函数的执行已经结束(或是通过 "
339+ "``return``,或是通过异常)。 它只会针对纯 Python(字节码)函数触发。"
322340
323341#: ../../howto/instrumentation.rst:390
324342msgid "Examples"
@@ -329,7 +347,7 @@ msgid ""
329347"This SystemTap script uses the tapset above to more cleanly implement the "
330348"example given above of tracing the Python function-call hierarchy, without "
331349"needing to directly name the static markers:"
332- msgstr ""
350+ msgstr "这个SystemTap脚本使用上面的tapset来更清晰地实现上面给出的跟踪Python函数调用层次结构的例子,而不需要直接命名静态标记。 "
333351
334352#: ../../howto/instrumentation.rst:410
335353msgid ""