From: Don Bowman <don@sandvine.com>
To: Don Bowman <don@sandvine.com>
Cc: "'gdb@sources.redhat.com '" <gdb@sources.redhat.com>
Subject: RE: MIPS stack tracing
Date: Wed, 06 Feb 2002 09:40:00 -0000 [thread overview]
Message-ID: <FE045D4D9F7AED4CBFF1B3B813C853371BC219@mail.sandvine.com> (raw)
> From: Don Bowman
>
> I'm going to give dwarf2 a try (as suggested in the thread
> @ http://sources.redhat.com/ml/crossgcc/2001-12/msg00039.html)
>
To summarise:
So the dwarf-2 gives the same affect, stack traces do not work
on mips with gcc 3.0.3 and binutils 2.11.2. The root of the
problem is that the multiple returns per function exist as
of the new version of gcc, and there is no .mdebug section
anymore. gdb doesn't read the .pdr section which is emitted
with the information on how to unwind the stack, so it
switches to its heuristic, which is now broken because of the
multiple returns.
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.
Am I correct that the .pdr section is an array of:
/*
* Procedure Descriptor
*
* There is one of these for EVERY TEXT LABEL.
* If a procedure is in a file with full symbols, then isym
* will point to the PROC symbols, else it will point to the
* global symbol for the label.
*/
typedef struct pdr {
bfd_vma adr; /* memory address of start of procedure */
long isym; /* start of local symbol entries */
long iline; /* start of line number entries*/
long regmask; /* save register mask */
long regoffset; /* save register offset */
long iopt; /* start of optimization symbol entries*/
long fregmask; /* save floating point register mask */
long fregoffset; /* save floating point register offset */
long frameoffset; /* frame size */
short framereg; /* frame pointer register */
short pcreg; /* offset or reg of return pc */
long lnLow; /* lowest line in the procedure */
long lnHigh; /* highest line in the procedure */
bfd_vma cbLineOffset; /* byte offset for this procedure from the
fd base */
/* These fields are new for 64 bit ECOFF. */
unsigned gp_prologue : 8; /* byte size of GP prologue */
unsigned gp_used : 1; /* true if the procedure uses GP */
unsigned reg_frame : 1; /* true if register frame procedure */
unsigned prof : 1; /* true if compiled with -pg */
unsigned reserved : 13; /* reserved: must be zero */
unsigned localoff : 8; /* offset of local variables from vfp */
} PDR, *pPDR;
#define cbPDR sizeof(PDR)
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.
next reply other threads:[~2002-02-06 17:40 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-06 9:40 Don Bowman [this message]
2002-02-06 16:45 ` Daniel Jacobowitz
-- strict thread matches above, loose matches on Subject: below --
2002-02-07 6:56 Don Bowman
2002-02-07 7:30 ` Daniel Jacobowitz
2002-02-04 9:22 David Anderson
2002-02-03 15:49 Don Bowman
2002-02-03 12:29 Don Bowman
2002-02-03 12:29 ` Daniel Jacobowitz
2002-02-03 12:29 ` Andrew Cagney
2002-02-03 12:13 ` Daniel Jacobowitz
2002-02-03 12:29 ` Andrew Cagney
2002-02-02 12:14 Don Bowman
2002-02-02 14:45 ` Daniel Jacobowitz
2002-02-02 11:26 Don Bowman
2002-02-02 12:11 ` Stan Shebs
2002-02-02 10:58 David Anderson
2002-02-02 9:57 David Anderson
2002-02-01 10:15 Don Bowman
2002-02-01 11:32 ` Daniel Jacobowitz
2002-02-02 11:16 ` Greg McGary
2002-01-31 14:27 Don Bowman
2002-02-01 9:37 ` Daniel Jacobowitz
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=FE045D4D9F7AED4CBFF1B3B813C853371BC219@mail.sandvine.com \
--to=don@sandvine.com \
--cc=gdb@sources.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