Compiling with Debugging Symbols
The first step in getting a program ready for debugging is to add your compiler's –g debugging command line option. This option tells your compiler to generate symbol table debugging information; for example:
 
cc -g -o executable-name source-file
Here are a couple of general considerations about compiling your code:
Compiler option
What it does
When to use it
Debugging symbols option (usually –g)
Generates debugging information in the symbol table.
Before debugging any program with TotalView.
Optimization option (usually –O)
Rearranges code to optimize your program's execution.
Some compilers let you use the –O option with the ‑g option, but we advise against doing this before using the debugger as unexpected results often occur.
After you finish debugging your program.
The following table lists the procedures to compile C/C++ programs on Linux platforms.
Compiler
Compiler Command Line
GCC C
gcc -g source.c
GCC C++
g++ -g source.cxx
clang C
clang -g source.c
clang C++
clang++ -gsource.cxx
Oracle Studio C
cc -g source.c
Oracle Studio C++
CC -g source.cxx
Intel C++ Compiler
icc -g source.cxx
PGI CC
pgcc -g source.c
PGI C++
pgc++ -gsource.cxx
The following table lists the procedures to compile Fortran programs on Linux platforms.
Compiler
Compiler Command Line
Absoft Fortran 77
f77 -g program
.f f77 -g program.for
Absoft Fortran 90
f90 -g program.f90
Absoft Fortran 95
f95 -g program.f95
G77
g77 -g program.f
Intel Fortran Compiler
ifort -g program.f
Lahey/Fujitsu Fortran
lf95 -g program.f
PGI Fortran 77
pgf77 -g program.f
PGI Fortran 90
pgf90 -g program.f
The following table lists the procedures to compile programs on ARM64 platforms.
Compiler
Compiler Command Line
GCC C
gcc -g program.c
GCC C++
g++ -g program.cxx
G77
g77 -g program.f
The following table lists the procedures to compile programs on Mac OS platforms.
Compiler
Compiler Command Line
Absoft Fortran 77
f77 -gprogram
.f f77 -gprogram.for
Absoft Fortran 90
f90 -gprogram.f90
Absoft Fortran 95
f95 -g program.f95
GCC C
gcc -g program.c
GCC C++
g++ -gprogram.cxx
GCC Fortran
gfortran -gprogram.f
clang C
clang -g source.c
clang C++
clang++ -gsource.cxx
Intel C++ Compiler
icc -g source.cxx
Intel Fortran Compiler
ifort -g program.f