In addition to the working
language, every source file that GDB knows about has its own working language.
For some object file formats, the compiler might indicate which language
a particular source file is in. However, most of the time GDB infers the
language from the name of the file. The language of a source file controls
whether C++ names are demangled—this way backtrace
can show each frame appropriately for its own language. There is no way
to set the language of a source file from within GDB. This is most commonly
a problem when you use a program, such as cfront
or f2c,
that generates C but is written in another language. In that case, make
the program use #line
directives in its C output; that way GDB will know the correct language
of the source code of the original program, and will display that source
code, not the generated C code.