9.4.1.3C++ expressions
GDB expression handling can interpret most C++ expressions.
WARNING! GDB can only debug C++ code if you use the proper compiler. Typically, C++ debugging depends on the use of additional debugging information in the symbol table, and thus requires special support. In particular, if your compiler generates a.out, MIPS ECOFF, RS/6000 XCOFF, or ELF with stabs extensions to the symbol table, these facilities are all available. (With GNU CC, you can use the
1.Member function calls are allowed; you can use expressions like count =
2.While a member function is active (in the selected stack frame), your expressions have the same namespace available as the member function; that is, GDB allows implicit references to the class instance pointer this following the same rules as C++.
3.You can call overloaded functions; GDB resolves the function call to the right definition, with some restrictions. GDB does not perform overload resolution involving
It does perform integral conversions and promotions,
Overload resolution is always performed, unless you have specified set
You must specify set
p 'foo(char,int)'('x', 13)
The GDB
4.GDB understands variables declared as C++ 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
9.4 Supported languages 109