Next: Python API, 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
      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
      Type python script
      End with a line saying just "end".
      >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. See Extending GDB.

`python execfile ("script-name")`

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

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