'.cxx', '.c++'

'.f', '.F',

Fortran source file. GDB does not distinguish between Fortran 77 and Fortran

'.f90'

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 “Displaying the language” (page 103).

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 automatically. This can lead 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 was written in C, and GDB was parsing Modula-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.

102 Using GDB with Different Languages