Debuggers

Debugger Description
gdb You can use GDB to debug programs written in Fortran, Objective C, C and C++.  GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act:

    • Start your program, specifying anything that might affect its behavior.
    • Make your program stop on specified conditions.
    • Examine what has happened, when your program has stopped.
  • Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another.
idb The Intel Debugger (IDB) is a component of Intel C++ and Intel Fortran Compilers. IDB provides debugging support for C, C++, and Fortran (including Fortran 95/90) languages. It also provides a choice of command-line or graphical user interface (GUI) under the Eclipse platform. It is a full-featured symbolic source code application debugger that helps programmers

    • Debug programs
    • Disassemble and examine machine code and examine machine register values
    • Debug programs with shared libraries
    • Debug multi-threaded applications
  • Debug remote applications
pgdbg pgdbg  is  the Portland Group Inc. symbolic source-level debugger for F77, F90, C, C++ and assembly language programs.  pgdbg is capable of debugging applications that exhibit various levels of parallelism, including:

    • Single-thread, serial applications
    • Multi-threaded applications
    • Distributed MPI applications
  • Any combination of the above
totalview The TotalView debugger is a source-level debugger with a graphic user interface (based on the X Window System) and features for debugging distributed programs, multiprocess programs, and multithreaded programs. You need a workstation or terminal running the X Window System to use TotalView.
valgrind valgrind is a flexible program for debugging and profiling Linux executables. It consists of a core, which provides a synthetic CPU in software, and a series of debugging and profiling tools. The architecture is modular so that new tools can be created easily and without disturbing the existing structure.