From: Vladimir Prus <ghost@cs.msu.su>
To: gdb@sources.redhat.com
Subject: Re: warning: (Internal error: pc 0xd00 in read in psymtab, but not in symtab.)
Date: Tue, 15 Nov 2005 06:50:00 -0000 [thread overview]
Message-ID: <dlc0b4$ic3$1@sea.gmane.org> (raw)
In-Reply-To: <20051115010716.GA14640@Power-Mac-G5.local>
Ron McCall wrote:
> By the way, I did try a newer snapshot but still got the same result, as
> you suspected. I ran the cross gdb under a native gdb to try to see
> what was happening. With a breakpoint on find_pc_sect_symtab() in
> symtab.c and a single command input of "disas 0xd00 0xd04" there are
> several calls to this function. I can re-run the test to get specific
> input values if that would help. If I remember correctly, the call that
> resulted in the warning message being printed had inputs of pc=0 and
> section=0.
pc=0? Hmm, does your application start at address zero?
I distinctly remember I had to patch my local gdb version because it did not
like sections starting at address zero.
Below is the patch I use. But I'm not sure it's the problem in your case:
the patch fixes the "pc = 0" problem both for partial symbol table
(psymtab), and complete symbol table (symtab). Without this patch I get
error even earlier.
- Volodya
Index: gdb/dwarf2read.c
===================================================================
--- gdb/dwarf2read.c (revision 1679)
+++ gdb/dwarf2read.c (revision 1680)
@@ -3164,8 +3203,13 @@
labels are not in the output, so the relocs get a value of 0.
If this is a discarded function, mark the pc bounds as invalid,
so that GDB will ignore it. */
+ /* VP: commented out of the same reason as in read_partial_die.
+ Damn the code duplication.
+ */
+ #if 0
if (low == 0 && (bfd_get_file_flags (obfd) & HAS_RELOC) == 0)
return 0;
+ #endif
*lowpc = low;
*highpc = high;
@@ -5423,10 +5467,15 @@
labels are not in the output, so the relocs get a value of 0.
If this is a discarded function, mark the pc bounds as invalid,
so that GDB will ignore it. */
+ /* VP: 2005/04/20: On NM, text segment starts at address 0, so disable
+ the check for zero. */
if (has_low_pc_attr && has_high_pc_attr
&& part_die->lowpc < part_die->highpc
+#if 0
&& (part_die->lowpc != 0
- || (bfd_get_file_flags (abfd) & HAS_RELOC)))
+ || (bfd_get_file_flags (abfd) & HAS_RELOC))
+#endif
+ )
part_die->has_pc_info = 1;
return info_ptr;
}
next prev parent reply other threads:[~2005-11-15 6:50 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-08 15:07 Ron McCall
2005-11-13 17:39 ` Daniel Jacobowitz
2005-11-15 1:07 ` Ron McCall
2005-11-15 2:09 ` Daniel Jacobowitz
2005-11-16 3:28 ` Ron McCall
2005-11-15 6:50 ` Vladimir Prus [this message]
2005-11-15 20:46 ` Ron McCall
2005-11-15 23:10 ` Jim Blandy
2005-11-15 23:25 ` Daniel Jacobowitz
2005-11-16 0:12 ` Jim Blandy
2005-11-16 0:38 ` Daniel Jacobowitz
2005-11-16 1:33 ` Jim Blandy
2005-11-16 2:53 ` Daniel Jacobowitz
[not found] ` <20051116025218.GA27921@nevyn.them.org>
2005-11-16 2:54 ` Jim Blandy
2005-11-16 2:56 ` 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='dlc0b4$ic3$1@sea.gmane.org' \
--to=ghost@cs.msu.su \
--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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).