Overview

Software rarely works 100% correctly the first time you run it.

Debugging lets you investigate the operation of your code: single-stepping through instructions, inspecting the values of registers and memory during program execution, or setting breakpoints to pause execution at particular places in your code.

A number of tools are available to help you debug your software:

  • Simulation models such as Cycle Models, Fast Models, and Fixed Virtual Platforms let you develop software for Arm IP even when you don't have access to hardware.
  • If you do have access to hardware, debug probes such as DSTREAM and ULINK let you look inside the system you're debugging: collecting trace information, inspecting register values, and reading memory locations.
  • Arm Development Studio includes Arm Debugger, which helps you get to the root of software bugs throughout your development process.
  • For application development on Linux or Android, it is common to use GDB (the GNU Project Debugger) or ADB (Android Debug Bridge). These methods of debug do not make a connection into the lower level CoreSight architecture of a system and instead rely on a server to allow software debug. GDB is integrated into Arm Development Studio.

Debug with simulation models

Simulation models such as Cycle Models, Fast Models, and Fixed Virtual Platforms let you develop software for Arm IP even when you don't have access to hardware.

Debug with hardware

Arm Development Studio ships with pre-loaded debug configurations and examples for many popular devices. However, if you are designing your own SoC or are developing software for a less popular ASIC, Arm Debugger and DSTREAM debug probe can help to create a new device configuration.

Linux and Android debug

For application development on Linux or Android, it is common to use GDB (the GNU Project Debugger) or ADB (Android Debug Bridge). These methods of debug do not make a connection into the lower level CoreSight architecture of a system and instead rely on a server to allow software debug. GDB is integrated into Arm Development Studio.