Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Sheng-Liang Song <ssl@baymicrosystems.com>
To: 江河 <empriser@gmail.com>
Cc: Jim Blandy <jimb@codesourcery.com>, "news.gnu.gdb" <gdb@sourceware.org>
Subject: Re: How can i show the macro infor
Date: Fri, 21 Sep 2007 22:21:00 -0000	[thread overview]
Message-ID: <46F3EE94.4080005@baymicrosystems.com> (raw)
In-Reply-To: <m3ejgsaub4.fsf@codesourcery.com>

Hi JiangHe,

You may forget to use this gcc compile flags, "-gdwarf-2 -g3", at the compile time.
It works for Jim because he used the gcc compile flags.
gcc -gdwarf-2 -g3 x.c -o x

Reference gdb marco at http://www.delorie.com/gnu/docs/gdb/gdb_70.html

Sheng-Liang Song

Jim Blandy wrote:
> "江河" <empriser@gmail.com> writes:
>   
>>  I can't show the macro info by these operation.
>>
>> gcc --version
>> gcc (GCC) 3.4.5 20051201 (Red Hat 3.4.5-2)
>>
>> gdb --version
>> GNU gdb Red Hat Linux (6.3.0.0-1.96rh)
>>
>>     
>>> cat x.c
>>>       
>> #include <stdio.h>
>> #define NEX 1
>> int main()
>> {
>>         printf( "%d\n", N );
>>         return 0;
>> }
>>
>>     
>>> gcc -gdwarf-2 -g3 x.c -o x
>>>       
>> (gdb) l
>> 1       #include <stdio.h>
>> 2       #define NEX 1
>> 3       int main()
>> 4       {
>> 5               printf( "%d\n", NEX );
>> 6               return 0;
>> 7       }
>> (gdb) info macro NEX
>> The symbol `NEX' has no definition as a C/C++ preprocessor macro
>> at x.c:8
>>   included at /usr/include/stdio.h:749
>>
>> -- 
>> 桂華秋皎潔
>>     
>
> That response from GDB to your 'info macro NEX' command looks very
> strange.  I'd wonder whether your GCC was producing bad macro information.
>
> I wasn't able to reproduce this problem with Fedora Core 6's GCC 4.1.2:
>
>   

> $ cat x.c
> #include <stdio.h>
> #define NEX 1
> int main()
> {
>         printf( "%d\n", NEX );
>         return 0;
> }
> $ gcc -gdwarf-2 -g3 x.c -o x
> $ ~/gdb/pub/nat/gdb/gdb x
> GNU gdb 6.6.50.20070911-cvs
> Copyright (C) 2007 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "i686-pc-linux-gnu"...
> Using host libthread_db library "/lib/libthread_db.so.1".
> (gdb) b main
> Breakpoint 1 at 0x8048395: file x.c, line 5.
> (gdb) run
> Starting program: /home/jimb/play/x 
>
> Breakpoint 1, main () at x.c:5
> 5               printf( "%d\n", NEX );
> (gdb) info macro NEX
> Defined at /home/jimb/play/x.c:2
> #define NEX 1
> (gdb) print NEX
> $1 = 1
> (gdb) quit
> The program is running.  Exit anyway? (y or n) y
> $ gcc --version
> gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-13)
> Copyright (C) 2006 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> $ 
>   


      reply	other threads:[~2007-09-21 16:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-21 11:06 江河
2007-09-21 16:23 ` Jim Blandy
2007-09-21 22:21   ` Sheng-Liang Song [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46F3EE94.4080005@baymicrosystems.com \
    --to=ssl@baymicrosystems.com \
    --cc=empriser@gmail.com \
    --cc=gdb@sourceware.org \
    --cc=jimb@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox