This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: -ggdb3 -gdwarf-4 but "info macro BLAH" still doesn't work?


On Tue, May 1, 2012 at 1:36 PM, Martin Olsson <mnemo@minimum.se> wrote:
> Hello,
>
> In a small test app built with -g3 I can print values of macros inside gdb
> by doing "info macro MYMACRONAME", however in a larger application I cannot
> get it to work despite passing the same -g3 and using the same gdb command.
> Just to be sure, I tried turning off stuff like pre-compiled headers etc in
> the large app but I still can't get the macro values to print correctly. In
> the large app, what I see is:
>
> (gdb) info macro MYMACRONAME
> The symbol `MYMACRONAME' has no definition as a C/C++ preprocessor macro
> at ../../platforms/linux/src/main.cpp:263

the important part here I think is the:
at ../../platforms/linux/src/main.cpp:263

are you sure that MYMACRONAME is included and defined
at that point in the main.o file? info macro only does macros for the
place the program is currently executing at.

i see you are not getting the error message from the function
macro_inform_no_debuginfo so it seems there is a 'macro scope'.

> In both cases gdb "info source" reports "Includes preprocessor macro info."
> and also "Compiled with DWARF 2 debugging format."
>
> For the large app readelf also reports the macro I'm testing as present (so
> I'm assuming the gcc end is doing the right thing):
>
> $ readelf -wm binary | grep MYMACRONAME
> ?DW_MACINFO_define - lineno : 12 macro : MYMACRONAME 4096
>
> FWIW; I'm using ubuntu 12.04 LTS which means I got gcc 4:4.6.3-1ubuntu5 and
> gdb 7.4-2012.02-0ubuntu2. I've also tried building with "-ggdb3 -gdwarf-4"
> but I still can't get values of macros and oddly gdb then still reports
> "Compiled with DWARF 2 debugging format", which was a bit weird?
>
> Also if I do "info macros" then I get nothing printed at all.

that is rather odd, even in empty sources i've always noticed some gcc
defined stuff from "info macros".

> What else can I try to make progress on this issue?
>
> If there is no easier way, maybe someone can recommend a breakpoint location
> in GDB where I can step through the code that executes the "info macro BLAH"
> command ?

macrocmd.c the function info_macro_command would probably be the place to start.

you can also try running make check and checking the results for the
macro tests,
macscp.exp
info-macros.exp


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]