Debugging with GDB (September 2007)
Chapter 14: HP-UX Configuration-Specific Information 129
(gdb) info macro VAR2
Defined at scope.c:21
#define VAR2 201
- macro expand [macro-name]
Expands the macro and the parameters in the macro. If there are any parameters
in the macro, they are substituted in the macro definition when the definition is
displayed.
For example:
#define YY 6
#define MAC (67 + YY)
...
$ gdb
...
(gdb) macro expand MAC
expands to: (67 + 6)
• Evaluating Macros
HP WDB enables you to evaluate a macro and display the output. You can evaluate
the macro by using the commonly used gdb commands for evaluating and displaying
expressions, such as print. HP WDB supports the evaluation of macros with vari-
ables, constants, complex algebraic expressions involving variables, nested macros, and
function calls. HP WDB does not support the evaluation of macros with multiple
statements in the macro definitions, or the evaluation of macros with stringifying and
pasting tokens in the macro definitions.
14.9.1.1 Compiler Options to Enable Macro Debugging
To enable macro debugging, the program must b e compiled with the
+macro_debug=[all|none|ref] compiler option.
Additionally, the program must be compiled with one of the -g options (-g, -g0, or -g1)
to enable macro debugging. For example:
cc -g +macro_debug=all -o sample sample.c
The following options are available for the +macro_debug compiler option:
all To view and evaluate all the macro expressions in the program, you must com-
pile the program with +macro_debug=all. This option can cause a significant
increase in object file size.
ref To view and evaluate only the reference macros in the program, you must
compile the program with +macro_debug=ref. This is the default for -g, -g0,
or -g1.
none To disable macro debugging, you must compile the program with +macro_
debug=none
The macro debugging features are supported for +objdebug and +noobjdebug compiler
options.