Choosing a Debug Method

VisualGDB supports debugging embedded hardware through integration with third-party GDB stubs. Most popular devices can be configured by just selecting the debug method and the device settings in VisualGDB project wizard and project properties.

ARM devices

For ARM devices VisualGDB supports the following debug methods:

  • Segger J-Link
  • OpenOCD
  • Texane ST-Link

For out-of-the-box debugging experience we recommend using Segger J-Link devices with the Segger debug method.

If you are using a different JTAG/SWD programmer, use OpenOCD as it provides the most functionality.

If you are using ST-Link and your device is not supported by OpenOCD or does not work with it, try the Texane ST-Link tool, however it supports fewer features than OpenOCD.

Segger J-Link

Normally the only thing to configure when using Segger J-Link is the location of your J-Link software package:

The J-Link software is provided and supported by the J-Link manufacturer, so it normally works out-of-the-box.

OpenOCD

OpenOCD is an open-source debugging tool with a large community that supports most popular devices and USB programmers. VisualGDB provides easy configuration templates for most of them, so all you need to do is connect your JTAG/SWD programmer via USB and press "Detect":

If your device is not listed, OpenOCD may still support it through one of 500+ scripts shipped with it. Simply select "Manual setup" and search for a script for your device:

If you are using a very rare device, the OpenOCD community may still have a user-contributed script for it available online. Please search online for an OpenOCD script for your device or contact our support for assitance.

Texane ST-Link

The Texane ST-Link tool is a very basic open-source tool that only supports ST-Link devices. It is less stable than OpenOCD and has fewer features, however if OpenOCD does not work with your device due to some reason, Texane ST-Link could be a good alternative.

MSP430 Devices

The recommended debug method for MSP430 devices is the gdbproxy++. This is an open-source tool maintained by Sysprogs that allows debugging devices supported by the MSP430 debugging DLL:

Note: the core debugging functionality is implemented in the msp430.dll file provided by TI. If your device does not work with msp430-gdbproxy++, please replace the msp430.dll file with a newer version from TI.

Other device families

If you are not using an ARM or msp430 device, then you need to download the GDB stub for your programmer. A GDB stub is a program provided by the programmer's manufacturer that connects to the programmer and then accepts connections from GDB via a TCP port allowing it to communicate to your device. Once you download the GDB stub, select "Custom GDB stub" in VisualGDB debug settings:

Then specify the following parameters from the GDB stub documentation:

  • The path to the GDB stub program
  • Any additional arguments (e.g. device name)
  • TCP port where the stub will be listening for connections from GDB