This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
RE: [6.2] PROBLEMS file
- From: "Dave Korn" <dk at artimi dot com>
- To: "'Eli Zaretskii'" <eliz at gnu dot org>,"'Mark Kettenis'" <kettenis at chello dot nl>,"'Steven Murdoch'" <gdb+Steven dot Murdoch at cl dot cam dot ac dot uk>
- Cc: <brobecker at gnat dot com>,<mec dot gnu at mindspring dot com>,<cagney at gnu dot org>,<gdb at sources dot redhat dot com>
- Date: Fri, 23 Jul 2004 13:11:50 +0100
- Subject: RE: [6.2] PROBLEMS file
> -----Original Message-----
> From: gdb-owner On Behalf Of Eli Zaretskii
> Sent: 23 July 2004 13:17
> To: Mark Kettenis
> > Date: Fri, 23 Jul 2004 11:23:32 +0200 (CEST)
> > From: Mark Kettenis
> >
> > GDB loses track after frame #21, but I doubt whether
> > recursive_edit_1 is a frameless function. Can you post a
> > dissassembly of that function?
>
> Here it is:
>
> (gdb) disassemble recursive_edit_1
> Dump of assembler code for function recursive_edit_1:
> 0x0005f7b0 <recursive_edit_1+0>: push %ebp
> 0x0005f7b1 <recursive_edit_1+1>: mov 0x375aa0,%eax
> 0x0005f7b6 <recursive_edit_1+6>: mov %esp,%ebp
<SPECULATIVE strength=plausible>
Somebody's implemented schedulable rtl prolog insn patterns in i386 gcc
and now the gdb prolog analysis gives up when it finds an instruction it
doesn't recognise has been moved backward by the scheduler from the function
body to in amongst the prolog instructions.
I believe this may also explain the thread "GDB seems to set breakpoints
on functions at the wrong place" at
http://sources.redhat.com/ml/gdb/2004-07/msg00107.html, so I've Cc'd the OP
of that message back in here.
Hmm. I found this interesting comment in i386.md:
;; Prologue and epilogue instructions
;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and
;; all of memory. This blocks insns from being moved across this point.
Perhaps someone has removed one that previously used to be emitted to keep
body insns out of the prolog.
</SPECULATIVE>
cheers,
DaveK
--
Can't think of a witty .sigline today....