This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: MIPS stack tracing
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Don Bowman <don at sandvine dot com>
- Cc: "'gdb at sources dot redhat dot com '" <gdb at sources dot redhat dot com>
- Date: Thu, 7 Feb 2002 10:30:02 -0500
- Subject: Re: MIPS stack tracing
- References: <FE045D4D9F7AED4CBFF1B3B813C85337675B1D@mail.sandvine.com>
On Thu, Feb 07, 2002 at 09:55:57AM -0500, Don Bowman wrote:
> > >
> > > Upon examination of gas, the .pdr section is only emitted if
> > > MIPS_STABS_ELF is defined. Am I to assume that if I'm using
> > > DWARF2 this won't occur? The code which actually emits it
> > > seems to be in ecoff.c.
> >
> > No. It should be emitted unless we are emitting .mdebug, which we
> > don't do any more for mips-*-linux.
>
> The code in gas is wrapped in #ifdef MIPS_STABS_ELF.
Yes. That affects any assembler that supports stabs, not any assembler
currently emitting stabs :) Bad naming perhaps.
> > > This doesn't seem right to me, if I dump my .pdr section I get:
> > > Contents of section .pdr:
> > > 0000 00400080 00000000 00000000 00000000 .@..............
> > > 0010 00000000 00000000 00000000 00000000 ................
> > > 0020 74430080 00000000 00000000 00000000 tC..............
> > > 0030 00000000 00000000 00000000 00000000 ................
> > > 0040 b8430080 00000000 00000000 00000000 .C..............
> > > ...
> > >
> > > But all of my addresses start @ 0x80000000.
> >
> > Careful, it has relocations if you look at it in an object. Also
> > careful, you have a host-target endian mismatch. That first word is
> > 0x80000400.
>
> If I run objdump -r, there are no relocations, my image is fully
> located.
>
> Interestingly, my host is little endian, my target is little endian.
> Any guess on why those addresses whould show up as big endian?
No idea...
> Also, from gas, it appears a .pdr record is 7 words long, but the
> .pdr shows an 8-word recurrence of the address. I assume it aligns?
No, the first word is the address of the symbol and the other 7 are
data.
> So should the endianess be swapped here [ie reverse of both my host
> and target]? Or do I have a bug in gas to fix first :) Is PDR a
> standard of any sort, or is it just a gas invention?
Not sure. But no bug in gas - only a bug in perhaps objdump.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer