Skip to content

DDT

Arm DDT is a parallel debugger with a graphical user interface (GUI).

Available

  • Puhti: 22.0.4, 22.1.3
  • Mahti: 22.1.0

License

Usage is possible for both academic and commercial purposes.

Usage

Set up the debugger environment

module load ddt

Compile the application to be debugged, for example a Fortran, C or C++ program, with the compiler option -g to enable generation of debug information.

Here are a few examples of debug sessions (MPI debug sessions). The first salloc command requests 40 processes in a single node and the second 40 processes divided into two nodes:

export SLURM_OVERLAP=1

salloc --nodes=1 --ntasks-per-node=40 --time=00:30:00 --partition=small --account=<project_id> ddt srun ./debug_enabled_code
salloc --nodes=2 --ntasks-per-node=20 --time=00:30:00 --partition=large --account=<project_id> ddt srun ./debug_enabled_code

By default, DDT sets the initial breakpoint at MPI_Init. For debugging scalar or plain OpenMP programs, set the following environment variables before starting the debugger:

export ALLINEA_MPI_INIT=main
export ALLINEA_HOLD_MPI_INIT=1

Documentation


Last update: February 17, 2023