Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Brian Ford <ford@vss.fsi.com>
To: Jim Blandy <jimb@redhat.com>
Cc: Eli Zaretskii <eliz@gnu.org>, gdb-patches@sources.redhat.com
Subject: Re: [PATCH] i386_stab_reg_to_regnum (4 <-> 5, ebp <-> esp)
Date: Mon, 05 Apr 2004 21:57:00 -0000	[thread overview]
Message-ID: <Pine.GSO.4.58.0404051646530.21204@thing1-200> (raw)
In-Reply-To: <vt2brm647f3.fsf@zenia.home>

On Mon, 5 Apr 2004, Jim Blandy wrote:

> Eli, here is a program you can use to see whether DJGPP's GCC and
> the current GDB disagree on how to number %ebp and %esp.

Thank you.  Thank you.  Thank you.  Did I say thank you?

> One of the reasons people would tend not to notice if %ebp and %esp
> are misnumbered in STABS is that they almost never occur.  Dwarf 2
> emits explicit location expressions to specify the "frame base" for a
> function; these expressions usually refer to %esp or %ebp.  In STABS,
> however, stack-based variables are simply marked as "LSYMS" or
> "PSYMS", whose locations are given as offsets relative to some
> implicit base that the debugger just has to know.

I expected as much since I never saw a problem in Cygwin before I tried to
add DWARF 2 support.  I just didn't know how these functions were used
well enough to find a simple test case.

> So the only way to get those register numbers to appear at all is to
> get a variable allocated to them.  You'll never get a variable
> allocated to %esp.  And you'll never get a varable allocated to %ebp
> unless you compile with -fomit-frame-pointer.  So, if I compile the
> attached program with GCC 3.3 passing -O -fomit-frame-pointer, 'n'
> gets allocated to %ebp.

FWIW, this does show the problem clearly on Cygwin.

ford@fordpc ~
$ gcc -g -O -fomit-frame-pointer frameless.c -o frameless_stab.exe

ford@fordpc ~
$ gdb frameless_stab.exe
GNU gdb 2003-09-20-cvs (cygwin-special)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i686-pc-cygwin"...
(gdb) b foo
Breakpoint 1 at 0x401050: file frameless.c, line 6.
(gdb) r 2
Starting program: /home/ford/frameless_stab.exe 2

Breakpoint 1, foo (n=0) at frameless.c:6
6       {
(gdb) n
8         register int a = n * 1;
(gdb) info address n
Symbol "n" is a variable in register esp.
(gdb) p n
$1 = 2289692
(gdb) p $esp
$2 = (void *) 0x22f01c
(gdb) p $ebp
$3 = (void *) 0x2
(gdb)

-- 
Brian Ford
Senior Realtime Software Engineer
VITAL - Visual Simulation Systems
FlightSafety International
Phone: 314-551-8460
Fax:   314-551-8444


  reply	other threads:[~2004-04-05 21:57 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-01  0:11 Brian Ford
2004-04-01 17:22 ` Jim Blandy
2004-04-01 18:00   ` Brian Ford
2004-04-01 21:29     ` Jim Blandy
2004-04-01 22:54       ` Brian Ford
2004-04-02  7:45         ` Eli Zaretskii
     [not found]           ` <Pine dot GSO dot 4 dot 58 dot 0404021000390 dot 21204 at thing1-200>
     [not found]             ` <2719-Fri02Apr2004213907+0300-eliz at gnu dot org>
     [not found]               ` <Pine dot GSO dot 4 dot 58 dot 0404021648050 dot 21204 at thing1-200>
2004-04-02 17:31           ` Brian Ford
2004-04-02 19:42             ` Eli Zaretskii
2004-04-02 23:15               ` Brian Ford
2004-04-03  9:08                 ` Eli Zaretskii
2004-04-05 18:18                   ` Jim Blandy
2004-04-05 21:57                     ` Brian Ford [this message]
2004-04-18 16:33                       ` Eli Zaretskii
2004-04-05 18:21                   ` Jim Blandy
2004-04-05 22:46                   ` Brian Ford
2004-04-18 17:00                     ` Eli Zaretskii
2004-04-05 22:46                 ` Jim Blandy
2004-04-05 23:19                   ` Brian Ford
2004-04-05 23:38                     ` Jim Blandy
2004-04-06 14:53                       ` Brian Ford
2004-04-15  9:38                         ` Eli Zaretskii
2004-04-06 23:24                     ` Mark Kettenis
2004-04-07 16:25                       ` Brian Ford
2004-04-07 18:02                         ` Jim Blandy
2004-04-07 20:06                       ` [PATCH] Rename i386_xxx_reg_to_regnum Brian Ford
2004-04-07 20:48                         ` Jim Blandy
2004-04-07 21:06                           ` Brian Ford
2004-04-07 21:41                             ` Jim Blandy
2004-04-09 12:37                               ` Mark Kettenis
2004-04-09 17:49                                 ` Brian Ford
2004-04-06 23:23                   ` [PATCH] i386_stab_reg_to_regnum (4 <-> 5, ebp <-> esp) Mark Kettenis
2004-04-07 16:46                     ` Jim Blandy
2004-04-18 16:48                   ` Eli Zaretskii
2004-04-19  2:06                     ` ix86 PE/COFF DWARF register numbering (was Re: [PATCH] i386_stab_reg_to_regnum (4 <-> 5, ebp <-> esp)) Brian Ford
2004-04-19  5:59                       ` Eli Zaretskii
2004-04-19 16:34                         ` ix86 PE/COFF DWARF register numbering Brian Ford
2004-04-19 12:42                     ` [PATCH] i386_stab_reg_to_regnum (4 <-> 5, ebp <-> esp) Jim Blandy
2004-04-19  7:02                       ` Eli Zaretskii
2004-04-02 19:33           ` Eli Zaretskii
2004-04-02 22:47             ` Brian Ford

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.GSO.4.58.0404051646530.21204@thing1-200 \
    --to=ford@vss.fsi.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sources.redhat.com \
    --cc=jimb@redhat.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