110
Chapter 14. Using gdb with Different Languages
.f
.F
Fortran source file
.mod
Modula-2 source file
.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. Refer to Section 14.2
Displaying the language
.
14.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
or
modula-2
. 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 were 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.
14.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 pro-
gram written in a different source language. Using
set language auto
in this case frees you from
having to set the working language manually.
Содержание ENTERPRISE LINUX 4 - DEVELOPER TOOLS GUIDE
Страница 1: ...Red Hat Enterprise Linux 4 Debugging with gdb ...
Страница 12: ...2 Chapter 1 Debugging with gdb ...
Страница 28: ...18 Chapter 4 Getting In and Out of gdb ...
Страница 34: ...24 Chapter 5 gdb Commands ...
Страница 44: ...34 Chapter 6 Running Programs Under gdb ...
Страница 68: ...58 Chapter 8 Examining the Stack ...
Страница 98: ...88 Chapter 10 Examining Data ...
Страница 112: ...102 Chapter 12 Tracepoints ...
Страница 118: ...108 Chapter 13 Debugging Programs That Use Overlays ...
Страница 138: ...128 Chapter 14 Using gdb with Different Languages ...
Страница 144: ...134 Chapter 15 Examining the Symbol Table ...
Страница 170: ...160 Chapter 19 Debugging remote programs ...
Страница 198: ...188 Chapter 21 Controlling gdb ...
Страница 204: ...194 Chapter 22 Canned Sequences of Commands ...
Страница 206: ...196 Chapter 23 Command Interpreters ...
Страница 216: ...206 Chapter 25 Using gdb under gnu Emacs ...
Страница 296: ...286 Chapter 27 gdb Annotations ...
Страница 300: ...290 Chapter 28 Reporting Bugs in gdb ...
Страница 322: ...312 Chapter 30 Using History Interactively ...
Страница 362: ...352 Appendix D gdb Remote Serial Protocol ...
Страница 380: ...370 Appendix F GNU GENERAL PUBLIC LICENSE ...
Страница 386: ...376 Appendix G GNU Free Documentation License ...
Страница 410: ......