++
Expressions ¶GDB expression handling can interpret most C++
expressions.
Warning: GDB can only debug C
++
code if you use the proper compiler and the proper debug format. Currently, GDB works best when debugging C++
code that is compiled with the most recent version of GCC possible. The DWARF debugging format is preferred; GCC defaults to this on most popular platforms. Other compilers and/or debug formats are likely to work badly or not at all when using GDB to debug C++
code. See Compiling for Debugging.
count = aml->GetOriginal(x, y)
this
following the same rules as C++
. using
declarations in the current scope are also respected by GDB.
It does perform integral conversions and promotions, floating-point promotions, arithmetic conversions, pointer conversions, conversions of class objects to base classes, and standard conversions such as those of functions or arrays to pointers; it requires an exact match on the number of function arguments.
Overload resolution is always performed, unless you have specified
set overload-resolution off
. See GDB Features for C++
.
You must specify set overload-resolution off
in order to use an
explicit function signature to call an overloaded function, as in
p 'foo(char,int)'('x', 13)
The GDB command-completion facility can simplify this; see Command Completion.
++
lvalue or rvalue
references; you can use them in expressions just as you do in C++
source—they are automatically dereferenced.
In the parameter list shown when GDB displays a frame, the values of reference variables are not displayed (unlike other variables); this avoids clutter, since references are often used for large structures. The address of a reference variable is always shown, unless you have specified ‘set print address off’.
++
name resolution operator ::
—your
expressions can use it just as expressions in your program do. Since
one scope may be defined in another, you can use ::
repeatedly if
necessary, for example in an expression like
‘scope1::scope2::name’. GDB also allows
resolving name scope by reference to source files, in both C and C++
debugging (see Program Variables).
++
specification.