-
-
Notifications
You must be signed in to change notification settings - Fork 260
Expand file tree
/
Copy pathgdb_helpers.po
More file actions
396 lines (330 loc) · 11.5 KB
/
gdb_helpers.po
File metadata and controls
396 lines (330 loc) · 11.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2024, 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\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-01 00:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: howto/gdb_helpers.rst:5
msgid "Debugging C API extensions and CPython Internals with GDB"
msgstr ""
#: howto/gdb_helpers.rst:9
msgid ""
"This document explains how the Python GDB extension, ``python-gdb.py``, can "
"be used with the GDB debugger to debug CPython extensions and the CPython "
"interpreter itself."
msgstr ""
#: howto/gdb_helpers.rst:13
msgid ""
"When debugging low-level problems such as crashes or deadlocks, a low-level "
"debugger, such as GDB, is useful to diagnose and correct the issue. By "
"default, GDB (or any of its front-ends) doesn't support high-level "
"information specific to the CPython interpreter."
msgstr ""
#: howto/gdb_helpers.rst:18
msgid ""
"The ``python-gdb.py`` extension adds CPython interpreter information to GDB. "
"The extension helps introspect the stack of currently executing Python "
"functions. Given a Python object represented by a :c:expr:`PyObject *` "
"pointer, the extension surfaces the type and value of the object."
msgstr ""
#: howto/gdb_helpers.rst:23
msgid ""
"Developers who are working on CPython extensions or tinkering with parts of "
"CPython that are written in C can use this document to learn how to use the "
"``python-gdb.py`` extension with GDB."
msgstr ""
#: howto/gdb_helpers.rst:29
msgid ""
"This document assumes that you are familiar with the basics of GDB and the "
"CPython C API. It consolidates guidance from the `devguide <https://devguide."
"python.org>`_ and the `Python wiki <https://wiki.python.org/moin/"
"DebuggingWithGdb>`_."
msgstr ""
#: howto/gdb_helpers.rst:36
msgid "Prerequisites"
msgstr ""
#: howto/gdb_helpers.rst:38
msgid "You need to have:"
msgstr ""
#: howto/gdb_helpers.rst:40
msgid ""
"GDB 7 or later. (For earlier versions of GDB, see ``Misc/gdbinit`` in the "
"sources of Python 3.11 or earlier.)"
msgstr ""
#: howto/gdb_helpers.rst:42
msgid ""
"GDB-compatible debugging information for Python and any extension you are "
"debugging."
msgstr ""
#: howto/gdb_helpers.rst:44
msgid "The ``python-gdb.py`` extension."
msgstr ""
#: howto/gdb_helpers.rst:46
msgid ""
"The extension is built with Python, but might be distributed separately or "
"not at all. Below, we include tips for a few common systems as examples. "
"Note that even if the instructions match your system, they might be outdated."
msgstr ""
#: howto/gdb_helpers.rst:52
msgid "Setup with Python built from source"
msgstr ""
#: howto/gdb_helpers.rst:54
msgid ""
"When you build CPython from source, debugging information should be "
"available, and the build should add a ``python-gdb.py`` file to the root "
"directory of your repository."
msgstr ""
#: howto/gdb_helpers.rst:58
msgid ""
"To activate support, you must add the directory containing ``python-gdb.py`` "
"to GDB's \"auto-load-safe-path\". If you haven't done this, recent versions "
"of GDB will print out a warning with instructions on how to do this."
msgstr ""
#: howto/gdb_helpers.rst:65
msgid ""
"If you do not see instructions for your version of GDB, put this in your "
"configuration file (``~/.gdbinit`` or ``~/.config/gdb/gdbinit``)::"
msgstr ""
#: howto/gdb_helpers.rst:70
msgid "You can also add multiple paths, separated by ``:``."
msgstr ""
#: howto/gdb_helpers.rst:74
msgid "Setup for Python from a Linux distro"
msgstr ""
#: howto/gdb_helpers.rst:76
msgid ""
"Most Linux systems provide debug information for the system Python in a "
"package called ``python-debuginfo``, ``python-dbg`` or similar. For example:"
msgstr ""
#: howto/gdb_helpers.rst:80
msgid "Fedora:"
msgstr ""
#: howto/gdb_helpers.rst:87
msgid "Ubuntu:"
msgstr ""
#: howto/gdb_helpers.rst:93
msgid ""
"On several recent Linux systems, GDB can download debugging symbols "
"automatically using *debuginfod*. However, this will not install the "
"``python-gdb.py`` extension; you generally do need to install the debug info "
"package separately."
msgstr ""
#: howto/gdb_helpers.rst:100
msgid "Using the Debug build and Development mode"
msgstr ""
#: howto/gdb_helpers.rst:102
msgid "For easier debugging, you might want to:"
msgstr ""
#: howto/gdb_helpers.rst:104
msgid ""
"Use a :ref:`debug build <debug-build>` of Python. (When building from "
"source, use ``configure --with-pydebug``. On Linux distros, install and run "
"a package like ``python-debug`` or ``python-dbg``, if available.)"
msgstr ""
#: howto/gdb_helpers.rst:107
msgid "Use the runtime :ref:`development mode <devmode>` (``-X dev``)."
msgstr ""
#: howto/gdb_helpers.rst:109
msgid ""
"Both enable extra assertions and disable some optimizations. Sometimes this "
"hides the bug you are trying to find, but in most cases they make the "
"process easier."
msgstr ""
#: howto/gdb_helpers.rst:115
msgid "Using the ``python-gdb`` extension"
msgstr ""
#: howto/gdb_helpers.rst:117
msgid ""
"When the extension is loaded, it provides two main features: pretty printers "
"for Python values, and additional commands."
msgstr ""
#: howto/gdb_helpers.rst:121
msgid "Pretty-printers"
msgstr ""
#: howto/gdb_helpers.rst:123
msgid ""
"This is what a GDB backtrace looks like (truncated) when this extension is "
"enabled::"
msgstr ""
#: howto/gdb_helpers.rst:142
msgid ""
"Notice how the dictionary argument to ``PyDict_GetItemString`` is displayed "
"as its ``repr()``, rather than an opaque ``PyObject *`` pointer."
msgstr ""
#: howto/gdb_helpers.rst:145
msgid ""
"The extension works by supplying a custom printing routine for values of "
"type ``PyObject *``. If you need to access lower-level details of an "
"object, then cast the value to a pointer of the appropriate type. For "
"example::"
msgstr ""
#: howto/gdb_helpers.rst:168
msgid ""
"Note that the pretty-printers do not actually call ``repr()``. For basic "
"types, they try to match its result closely."
msgstr ""
#: howto/gdb_helpers.rst:171
msgid ""
"An area that can be confusing is that the custom printer for some types look "
"a lot like GDB's built-in printer for standard types. For example, the "
"pretty-printer for a Python ``int`` (:c:expr:`PyLongObject *`) gives a "
"representation that is not distinguishable from one of a regular machine-"
"level integer::"
msgstr ""
#: howto/gdb_helpers.rst:183
msgid ""
"The internal structure can be revealed with a cast to :c:expr:`PyLongObject "
"*`:"
msgstr ""
#: howto/gdb_helpers.rst:185
msgid ""
"(gdb) p *(PyLongObject*)some_python_integer $5 = {ob_base = {ob_base = "
"{ob_refcnt = 8, ob_type = 0x3dad39f5e0}, ob_size = 1}, ob_digit = {42}}"
msgstr ""
#: howto/gdb_helpers.rst:189
msgid ""
"A similar confusion can arise with the ``str`` type, where the output looks "
"a lot like gdb's built-in printer for ``char *``::"
msgstr ""
#: howto/gdb_helpers.rst:195
msgid ""
"The pretty-printer for ``str`` instances defaults to using single-quotes (as "
"does Python's ``repr`` for strings) whereas the standard printer for ``char "
"*`` values uses double-quotes and contains a hexadecimal address::"
msgstr ""
#: howto/gdb_helpers.rst:202
msgid ""
"Again, the implementation details can be revealed with a cast to :c:expr:"
"`PyUnicodeObject *`::"
msgstr ""
#: howto/gdb_helpers.rst:210
msgid "``py-list``"
msgstr ""
#: howto/gdb_helpers.rst:212
msgid ""
"The extension adds a ``py-list`` command, which lists the Python source code "
"(if any) for the current frame in the selected thread. The current line is "
"marked with a \">\"::"
msgstr ""
#: howto/gdb_helpers.rst:229
msgid ""
"Use ``py-list START`` to list at a different line number within the Python "
"source, and ``py-list START,END`` to list a specific range of lines within "
"the Python source."
msgstr ""
#: howto/gdb_helpers.rst:234
msgid "``py-up`` and ``py-down``"
msgstr ""
#: howto/gdb_helpers.rst:236
msgid ""
"The ``py-up`` and ``py-down`` commands are analogous to GDB's regular ``up`` "
"and ``down`` commands, but try to move at the level of CPython frames, "
"rather than C frames."
msgstr ""
#: howto/gdb_helpers.rst:240
msgid ""
"GDB is not always able to read the relevant frame information, depending on "
"the optimization level with which CPython was compiled. Internally, the "
"commands look for C frames that are executing the default frame evaluation "
"function (that is, the core bytecode interpreter loop within CPython) and "
"look up the value of the related ``PyFrameObject *``."
msgstr ""
#: howto/gdb_helpers.rst:246
msgid "They emit the frame number (at the C level) within the thread."
msgstr ""
#: howto/gdb_helpers.rst:320
msgid "For example::"
msgstr "Par exemple ::"
#: howto/gdb_helpers.rst:261
msgid "so we're at the top of the Python stack."
msgstr ""
#: howto/gdb_helpers.rst:263
msgid ""
"The frame numbers correspond to those displayed by GDB's standard "
"``backtrace`` command. The command skips C frames which are not executing "
"Python code."
msgstr ""
#: howto/gdb_helpers.rst:267
msgid "Going back down::"
msgstr ""
#: howto/gdb_helpers.rst:289
msgid "and we're at the bottom of the Python stack."
msgstr ""
#: howto/gdb_helpers.rst:291
msgid ""
"Note that in Python 3.12 and newer, the same C stack frame can be used for "
"multiple Python stack frames. This means that ``py-up`` and ``py-down`` may "
"move multiple Python frames at once. For example::"
msgstr ""
#: howto/gdb_helpers.rst:315
msgid "``py-bt``"
msgstr ""
#: howto/gdb_helpers.rst:317
msgid ""
"The ``py-bt`` command attempts to display a Python-level backtrace of the "
"current thread."
msgstr ""
#: howto/gdb_helpers.rst:336
msgid ""
"The frame numbers correspond to those displayed by GDB's standard "
"``backtrace`` command."
msgstr ""
#: howto/gdb_helpers.rst:340
msgid "``py-print``"
msgstr ""
#: howto/gdb_helpers.rst:342
msgid ""
"The ``py-print`` command looks up a Python name and tries to print it. It "
"looks in locals within the current thread, then globals, then finally "
"builtins::"
msgstr ""
#: howto/gdb_helpers.rst:356
msgid ""
"If the current C frame corresponds to multiple Python frames, ``py-print`` "
"only considers the first one."
msgstr ""
#: howto/gdb_helpers.rst:360
msgid "``py-locals``"
msgstr ""
#: howto/gdb_helpers.rst:362
msgid ""
"The ``py-locals`` command looks up all Python locals within the current "
"Python frame in the selected thread, and prints their representations::"
msgstr ""
#: howto/gdb_helpers.rst:370
msgid ""
"If the current C frame corresponds to multiple Python frames, locals from "
"all of them will be shown::"
msgstr ""
#: howto/gdb_helpers.rst:390
msgid "Use with GDB commands"
msgstr ""
#: howto/gdb_helpers.rst:392
msgid ""
"The extension commands complement GDB's built-in commands. For example, you "
"can use a frame numbers shown by ``py-bt`` with the ``frame`` command to go "
"a specific frame within the selected thread, like this::"
msgstr ""
#: howto/gdb_helpers.rst:411
msgid ""
"The ``info threads`` command will give you a list of the threads within the "
"process, and you can use the ``thread`` command to select a different one::"
msgstr ""
#: howto/gdb_helpers.rst:419
msgid ""
"You can use ``thread apply all COMMAND`` or (``t a a COMMAND`` for short) to "
"run a command on all threads. With ``py-bt``, this lets you see what every "
"thread is doing at the Python level::"
msgstr ""