From: Eli Zaretskii <eliz@is.elta.co.il>
To: Aditya Chugh <Aditya@in.huawei.com>
Cc: jtc@redback.com, gdb@sourceware.cygnus.com
Subject: RE: MACROS in gdb ???
Date: Wed, 21 Mar 2001 15:59:00 -0000 [thread overview]
Message-ID: <Pine.SUN.3.91.1010320112059.7756N-100000@is> (raw)
In-Reply-To: <70EB682332F4D41187D6000629AE2C651AE3E4@mail.in.huawei.com>
On Tue, 20 Mar 2001, Aditya Chugh wrote:
> (gdb) p &u2IncarnId
> Address requested for identifier "u2IncarnId" which is in a register.
Alternatively, "info address u2IncarnId" will tell you explicitly
where the variable is stored.
> But does this mean that if we complile using GNU CC with both `-g' and `-O'
> options GDB will give us wrong results ??
No, it just means that debugging optimized code should be taken with a
grain of salt. In particular, you should be very suspicious about
values of variables that are in registers: verify them with
independent evidence, such as (in this case) the info about the
arguments with which the function was called (type "info args"), or
evaluation of equivalent expressions which use only memory-based
variables.
> Moreover the same code when run in Visual Studio 6.0 prints correct
> values for u2IncarnId.Does this mean that the debugger in Visual
> Studio 6.0 is better than GDB for optimized code ?
Part of the blame lies with the compiler (which doesn't leave enough
info for the debugger to deal with register variables), part of the
problem is in the debugger. As ABIs evolve, GDB development needs to
catch up, and it takes time. (Note that when you debug with Visual
Studio, you don't replace the debugger alone, you also use a different
compiler. So the comparison with GDB alone is not really fair.)
Also note that GCC doesn't change its code generation when it sees -g,
so you are actually debugging the same code which will run in the
production version. Other compilers lower the optimization level or
disable optimizations completely when building a debug version, so you
are debugging a totally different code. This is an important feature
of GCC and GDB, but it does come at a price.
(This is why I think your ``solution'' of disabling optimizations is
Bad Idea: you are debugging a program which is very different from the
production code that will actually run on your target system.)
One possibility to try is to compile your program with -gstabs+
instead of -g (unless your GCC is already configured to do that by
default). That provides more elaborate debug info for GDB to work
with, but I'm not sure it will help in this particular case.
next prev parent reply other threads:[~2001-03-21 15:59 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-03-21 15:59 Aditya Chugh
2001-03-21 15:59 ` J.T. Conklin
2001-03-21 15:59 ` Daniel Berlin
2001-03-21 15:59 ` Eli Zaretskii [this message]
[not found] ` <eliz@is.elta.co.il>
2001-03-21 15:59 ` Kevin Buettner
2001-03-21 15:59 ` Eli Zaretskii
2001-03-21 15:59 Aditya Chugh
2001-03-21 15:59 ` J.T. Conklin
[not found] <200105010009.RAA12115@tully.CS.Berkeley.EDU>
2001-05-03 1:24 ` [Mingw-users] Re: _WIN32? Paul Hilfinger
2001-05-03 13:41 ` Andrew Cagney
2001-05-03 14:15 ` Danny Smith
2001-05-03 15:24 ` Andrew Cagney
2001-05-03 15:54 ` Christopher Faylor
2001-05-03 16:11 ` Andrew Cagney
2001-05-04 2:17 ` Eli Zaretskii
2001-05-04 2:19 ` Eli Zaretskii
2001-05-04 8:45 ` Christopher Faylor
2001-05-04 10:18 ` Eli Zaretskii
2001-05-04 12:04 ` Christopher Faylor
2001-05-07 9:08 ` Eli Zaretskii
2001-05-08 4:38 ` DOS/Windows-specific code (was: _WIN32?) Eli Zaretskii
2001-05-08 4:40 ` DOS/Windows-specific code: cli-cmds.c Eli Zaretskii
2001-05-08 5:07 ` Registers are not available in Cygwin leonp
2001-05-08 7:16 ` DOS/Windows-specific code: cli-cmds.c Christopher Faylor
2001-05-08 17:51 ` Andrew Cagney
2001-05-08 17:53 ` Christopher Faylor
2001-05-09 3:02 ` Eli Zaretskii
2001-05-10 8:33 ` Andrew Cagney
2001-05-08 17:56 ` Andrew Cagney
2001-05-09 3:03 ` Eli Zaretskii
2001-05-09 9:10 ` Andrew Cagney
2001-05-08 4:42 ` DOS/Windows-specific code: exec.c and symfile.c Eli Zaretskii
2001-05-08 7:43 ` Elena Zannoni
2001-05-08 17:58 ` Andrew Cagney
2001-05-09 3:03 ` Eli Zaretskii
2001-05-09 7:07 ` Christopher Faylor
2001-05-08 4:43 ` DOS/Windows-specific code: inflow.c Eli Zaretskii
2001-05-08 7:54 ` Christopher Faylor
2001-05-08 11:15 ` Eli Zaretskii
2001-05-09 13:10 ` Christopher Faylor
2001-05-08 4:46 ` DOS/Windows-specific code: main.c Eli Zaretskii
2001-05-08 7:58 ` Christopher Faylor
2001-05-08 8:17 ` Keith Seitz
2001-05-08 8:19 ` Christopher Faylor
2001-05-08 4:46 ` DOS/Windows-specific code: maint.c Eli Zaretskii
2001-05-08 23:40 ` Kevin Buettner
2001-05-09 3:22 ` Eli Zaretskii
2001-05-10 8:33 ` Andrew Cagney
2001-05-10 8:53 ` Eli Zaretskii
2001-05-08 4:47 ` DOS/Windows-specific code: source.c Eli Zaretskii
2001-05-08 9:30 ` DJ Delorie
2001-05-08 11:18 ` Christopher Faylor
2001-05-08 12:23 ` Eli Zaretskii
2001-05-08 14:00 ` DJ Delorie
2001-05-09 3:05 ` Eli Zaretskii
2001-05-09 7:08 ` Christopher Faylor
2001-05-08 11:14 ` Christopher Faylor
2001-05-08 12:25 ` Eli Zaretskii
2001-05-08 12:33 ` Christopher Faylor
2001-05-09 3:05 ` Eli Zaretskii
2001-05-08 4:48 ` DOS/Windows-specific code: sparcl-tdep.c Eli Zaretskii
2001-05-08 23:47 ` Kevin Buettner
2001-05-09 3:14 ` Eli Zaretskii
2001-05-10 8:33 ` Andrew Cagney
2001-05-08 4:48 ` DOS/Windows-specific code: terminal.h Eli Zaretskii
2001-05-08 11:18 ` Christopher Faylor
2001-05-08 4:50 ` DOS/Windows-specific code: top.c Eli Zaretskii
2001-05-08 7:46 ` Elena Zannoni
2001-05-08 4:51 ` DOS/Windows-specific code: utils.c Eli Zaretskii
2001-05-08 11:26 ` Christopher Faylor
2001-05-08 4:52 ` DOS/Windows-specific code: ser-tcp.c Eli Zaretskii
2001-05-08 5:56 ` Russ Allbery
2001-05-08 6:01 ` Christopher Faylor
2001-05-08 8:09 ` Eli Zaretskii
2001-05-08 8:20 ` Christopher Faylor
2001-05-08 10:30 ` Eli Zaretskii
2001-05-08 11:03 ` Christopher Faylor
2001-05-08 23:53 ` Kevin Buettner
2001-05-09 6:59 ` DOS/Windows-specific code: ser-tcp.c [need ruling from Andrew] Christopher Faylor
2001-05-09 9:29 ` Andrew Cagney
2001-05-08 4:52 ` DOS/Windows-specific code: sh-tdep.c and sh3-rom.c Eli Zaretskii
2001-05-08 7:49 ` Elena Zannoni
2001-05-08 11:17 ` Eli Zaretskii
2001-05-08 11:40 ` Elena Zannoni
2001-05-08 12:36 ` Christopher Faylor
2001-05-08 12:35 ` Christopher Faylor
2001-05-08 18:17 ` Andrew Cagney
2001-05-08 19:35 ` Christopher Faylor
2001-05-08 23:55 ` Kevin Buettner
2001-05-09 3:20 ` Eli Zaretskii
2001-05-09 7:49 ` Elena Zannoni
2001-05-08 4:53 ` DOS/Windows-specific code: values.c Eli Zaretskii
2001-05-08 23:58 ` Kevin Buettner
2001-05-09 7:01 ` Christopher Faylor
2001-05-10 8:33 ` Andrew Cagney
2001-05-08 4:54 ` DOS/Windows-specific code in sim/ Eli Zaretskii
2001-05-08 9:30 ` DJ Delorie
2001-05-08 11:04 ` Eli Zaretskii
2001-05-10 8:33 ` Andrew Cagney
2001-05-08 4:55 ` DOS/Windows-specific code: all the rest Eli Zaretskii
2001-05-08 5:12 ` leonp
2001-05-08 7:59 ` Christopher Faylor
2001-05-08 9:45 ` DJ Delorie
2001-05-08 10:53 ` Eli Zaretskii
2001-05-08 12:08 ` DJ Delorie
2001-05-07 9:09 ` [RFA] Remove OS-specific defines (was: _WIN32?) Eli Zaretskii
2001-05-07 10:39 ` Kevin Buettner
2001-05-07 11:23 ` Eli Zaretskii
2001-05-07 11:37 ` Andrew Cagney
2001-05-03 23:58 ` [Mingw-users] Re: _WIN32? Paul Hilfinger
2001-05-04 9:04 ` Andrew Cagney
2001-05-04 0:20 ` Eli Zaretskii
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=Pine.SUN.3.91.1010320112059.7756N-100000@is \
--to=eliz@is.elta.co.il \
--cc=Aditya@in.huawei.com \
--cc=gdb@sourceware.cygnus.com \
--cc=jtc@redback.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