Next: , Up: Python   [Contents][Index]

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
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

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
Type python script
End with a line saying just "end".
>print 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. See Extending GDB.

python execfile ("script-name")

This method is based on the execfile Python built-in function, and thus is always available.

Next: , Up: Python   [Contents][Index]