gdb

Version:

9.2

Category:

debugger

Cluster:

Loki

Author / Distributor

https://www.gnu.org/software/gdb/

Description

GDB (GNU Debugger) is a powerful tool that allows developers to inspect what is happening inside a program while it executes or what it was doing at the moment it crashed.

Version 9.2 introduces:

  • Improved debugging support for C, C++, Fortran, Go, Rust

  • Better Python scripting integration

  • Enhanced multithreaded and remote debugging capabilities

  • Debugging support for new architectures (including RISC-V and C-SKY)

It is typically used to set breakpoints, inspect variables, control execution flow, and diagnose segmentation faults or logic errors in compiled binaries.

Documentation

This is the GNU debugger.  Usage:

   gdb [options] [executable-file [core-file or process-id]]
   gdb [options] --args executable-file [inferior-arguments ...]

Selection of debuggee and its files:

 --args             Arguments after executable-file are passed to inferior
 --core=COREFILE    Analyze the core dump COREFILE.
 --exec=EXECFILE    Use EXECFILE as the executable.
 --pid=PID          Attach to running process PID.
 --directory=DIR    Search for source files in DIR.
 --se=FILE          Use FILE as symbol file and executable file.
 --symbols=SYMFILE  Read symbols from SYMFILE.
 --readnow          Fully read symbol files on first access.
 --readnever        Do not read symbol files.
 --write            Set writing into executable and core files.

Initial commands and command files:

 --command=FILE, -x Execute GDB commands from FILE.
 --init-command=FILE, -ix
                    Like -x but execute commands before loading inferior.
 --eval-command=COMMAND, -ex
                    Execute a single GDB command.
                    May be used multiple times and in conjunction
                    with --command.
 --init-eval-command=COMMAND, -iex
                    Like -ex but before loading inferior.
 --nh               Do not read ~/.gdbinit.
 --nx               Do not read any .gdbinit files in any directory.

Output and user interface control:

 --fullname         Output information used by emacs-GDB interface.
 --interpreter=INTERP
                    Select a specific interpreter / user interface
 --tty=TTY          Use TTY for input/output by the program being debugged.
 -w                 Use the GUI interface.
 --nw               Do not use the GUI interface.
 --tui              Use a terminal user interface.
 --dbx              DBX compatibility mode.
 -q, --quiet, --silent
                    Do not print version number on startup.

Operating modes:

 --batch            Exit after processing options.
 --batch-silent     Like --batch, but suppress all gdb stdout output.
 --return-child-result
                    GDB exit code will be the child's exit code.
 --configuration    Print details about GDB configuration and then exit.
 --help             Print this message and then exit.
 --version          Print version information and then exit.

Remote debugging options:

 -b BAUDRATE        Set serial port baud rate used for remote debugging.
 -l TIMEOUT         Set timeout in seconds for remote debugging.

Other options:

 --cd=DIR           Change current directory to DIR.
 --data-directory=DIR, -D
                    Set GDB's data-directory to DIR.

Examples/Usage

  • List available modules:

    $ module avail gdb
    
  • Load the gdb module:

    $ module load gdb/9.2
    
  • Check the loaded modules:

    $ module list
    
  • Unload the gdb module:

    $ module unload gdb/9.2
    

Installation