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
|
---
title: GDB setup
---
Most users will want to set up the GNU GDB debugger in order to use pyOCD for debugging applications. Either
the command-line GDB or a full IDE can be used.
Standalone GDB server
---------------------
After you install pyOCD via pip or setup.py, you will be able to execute the following in order to
start a GDB server powered by pyOCD:
```
$ pyocd gdbserver
```
You can get additional help by running ``pyocd gdbserver --help``.
Example command line GDB session showing how to connect to a running `pyocd gdbserver` and load
firmware:
```
$ arm-none-eabi-gdb application.elf
<gdb> target remote localhost:3333
<gdb> load
<gdb> monitor reset
```
The `pyocd gdbserver` subcommand is also usable as a drop in place replacement for OpenOCD in
existing setups. The primary difference is the set of gdb monitor commands.
Recommended GDB and IDE setup
-----------------------------
The recommended toolchain for embedded Arm Cortex-M development is [GNU Arm
Embedded](https://developer.arm.com/downloads/-/gnu-rm) (GNU-RM),
provided by Arm. GDB is included with this toolchain.
Note that the version of GDB included with the new, combined Arm GNU Toolchain as of version 11.2-2022.02
_will not_ work with pyOCD. This is because it is currently built without the required support for the XML
target descriptions that pyOCD sends to GDB. Versions later than 11.2-2022.02 may have this bug fixed.
For [Visual Studio Code](https://code.visualstudio.com), the
[cortex-debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) plugin is available
that supports pyOCD.
The GDB server also works well with [Eclipse Embedded CDT](https://projects.eclipse.org/projects/iot.embed-cdt),
previously known as [GNU MCU/ARM Eclipse](https://gnu-mcu-eclipse.github.io/). It fully supports pyOCD with
an included pyOCD debugging plugin.
To view peripheral register values either the built-in Eclipse Embedded CDT register view can be used, or
the Embedded System Register Viewer plugin can be installed. The latter can be installed from inside
Eclipse adding `http://embsysregview.sourceforge.net/update` as a software update server URL
under the "Help -> Install New Software..." menu item.
|