Debugging with GDB (September 2007)
80 Debugging with GDB
‘.f’
‘.F’
‘.f90’ Fortran source file. GDB does not distinguish between Fortran 77 and Fortran
90 files.
‘.s’
‘.S’ Assembler source file. This actually behaves almost like C, but GDB does not
skip over function prologues when stepping.
In addition, you may set the language associated with a filename extension. See Sec-
tion 9.2 [Displaying the language], page 80.
9.1.2 Setting the working language
If you allow GDB to set the language automatically, expressions are interpreted the same
way in your debugging session and your program.
If you wish, you may set the language manually. To do this, issue the command ‘set
language lang ’, where lang is the name of a language, such as c. For a list of the supported
languages, type ‘set language’.
Setting the language manually prevents GDB from updating the working language au-
tomatically. This can le ad to confusion if you try to debug a program when the working
language is not the same as the source language, when an expression is acceptable to both
languages—but means different things. For instance, if the current source file were written
in C, and GDB was parsing Mo dula-2, a command such as:
print a = b + c
might not have the effect you intended. In C, this means to add b and c and place the
result in a. The result printed would be the value of a. In Modula-2, this means to compare
a to the result of b+c, yielding a BOOLEAN value.
9.1.3 Having GDB infer the source language
To have GDB set the working language automatically, use ‘set language local’ or ‘set
language auto’. GDB then infers the working language. That is, when your program stops
in a frame (usually by encountering a breakpoint), GDB sets the working language to the
language recorded for the function in that frame. If the language for a frame is unknown
(that is, if the function or block corresponding to the frame was defined in a source file that
does not have a recognized extension), the current working language is not changed, and
GDB issues a warning.
This may not seem necessary for most programs, which are written entirely in one source
language. However, program modules and libraries written in one source language can be
used by a main program written in a different source language. Using ‘set language auto’
in this case frees you from having to set the working language manually.
9.2 Displaying the language
The following commands help you find out which language is the working language, and
also what language source files were written in.