gdb: Python Commands
23.2.1 Python Commands
----------------------
GDB provides two commands for accessing the Python interpreter, and one
related setting:
'python-interactive [COMMAND]'
'pi [COMMAND]'
Without an argument, the 'python-interactive' command can be used
to start an interactive Python prompt. To return to GDB, type the
'EOF' character (e.g., 'Ctrl-D' on an empty prompt).
Alternatively, a single-line Python command can be given as an
argument and evaluated. If the command is an expression, the
result will be printed; otherwise, nothing will be printed. For
example:
(gdb) python-interactive 2 + 3
5
'python [COMMAND]'
'py [COMMAND]'
The 'python' command can be used to evaluate Python code.
If given an argument, the 'python' command will evaluate the
argument as a Python command. For example:
(gdb) python print 23
23
If you do not provide an argument to 'python', it will act as a
multi-line command, like 'define'. In this case, the Python script
is made up of subsequent command lines, given after the 'python'
command. This command list is terminated using a line containing
'end'. For example:
(gdb) python
>print 23
>end
23
'set python print-stack'
By default, GDB will print only the message component of a Python
exception when an error occurs in a Python script. This can be
controlled using 'set python print-stack': if 'full', then full
Python stack printing is enabled; if 'none', then Python stack and
message printing is disabled; if 'message', the default, only the
message component of the error is printed.
It is also possible to execute a Python script from the GDB
interpreter:
'source script-name'
The script name must end with '.py' and GDB must be configured to
recognize the script language based on filename extension using the
'script-extension' setting. Extending GDB Extending GDB.