public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* [help] Linux kernel debug error: Cannot find DIE
@ 2012-07-11  9:32 朱庆
  2012-07-11 20:40 ` Tom Tromey
  0 siblings, 1 reply; 4+ messages in thread
From: 朱庆 @ 2012-07-11  9:32 UTC (permalink / raw)
  To: gdb

Hi all,

I met an error while debugging open64 built linux kernel with gdb,
following steps and error msg:
(gdb) file vmlinux
(gdb) target remote ip_addr:1234
Remote debugging using ip_addr:1234
Dwarf Error: Cannot find DIE at 0x1634a7 referenced from DIE at
0x17a459 [in module linux-kernel/linux-2.6.32.6/Build/vmlinux]
And there is also such error when set break points.

I'm not sure this is caused by incorrect dwarf info generated by
open64 compiler or gdb issues, since the gcc build kernel binary is
able to debug.
I compared the dwarf info output of the two compiler with objdump
--dwarf=info , open64's binary is about 1.95GB and gcc's binary is
1.72GB, is that too large?

Can someone give any clue on this to determine what is wrong here?

Thanks ahead!
zhuqing

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [help] Linux kernel debug error: Cannot find DIE
  2012-07-11  9:32 [help] Linux kernel debug error: Cannot find DIE 朱庆
@ 2012-07-11 20:40 ` Tom Tromey
  2012-07-12  8:44   ` 朱庆
  0 siblings, 1 reply; 4+ messages in thread
From: Tom Tromey @ 2012-07-11 20:40 UTC (permalink / raw)
  To: 朱庆; +Cc: gdb

>>>>> ">" == 朱庆  <zqing1986@gmail.com> writes:

>> Dwarf Error: Cannot find DIE at 0x1634a7 referenced from DIE at
>> 0x17a459 [in module linux-kernel/linux-2.6.32.6/Build/vmlinux]

>> I'm not sure this is caused by incorrect dwarf info generated by
>> open64 compiler or gdb issues, since the gcc build kernel binary is
>> able to debug.
>> I compared the dwarf info output of the two compiler with objdump
>> --dwarf=info , open64's binary is about 1.95GB and gcc's binary is
>> 1.72GB, is that too large?

>> Can someone give any clue on this to determine what is wrong here?

There isn't an easy way to know what has gone wrong here.

It could be incorrect DWARF -- meaning a compiler or (less likely)
linker bug.  Or, it could be a gdb bug.

I would debug it by using objdump or readelf to look at the DWARF around
the DIEs mentioned in the error message.

The size of the DWARF is probably not an issue.
At least, this is not the error I would expect in that situation.

Tom

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [help] Linux kernel debug error: Cannot find DIE
  2012-07-11 20:40 ` Tom Tromey
@ 2012-07-12  8:44   ` 朱庆
  2012-07-24 19:19     ` Tom Tromey
  0 siblings, 1 reply; 4+ messages in thread
From: 朱庆 @ 2012-07-12  8:44 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb

I accept your suggestion and have a look at dwarf dump, and find some
interestings:
I just write very 2 simple case, and link them.
There is warning like with the linked object:
objdump: Warning: Bogus end-of-siblings marker detected at offset 7a
in .debug_info section
Does this warning will affect debugging that causes errors I met?

Thanks
zhuqing

2012/7/12 Tom Tromey <tromey@redhat.com>:
>>>>>> ">" == 朱庆  <zqing1986@gmail.com> writes:
>
>>> Dwarf Error: Cannot find DIE at 0x1634a7 referenced from DIE at
>>> 0x17a459 [in module linux-kernel/linux-2.6.32.6/Build/vmlinux]
>
>>> I'm not sure this is caused by incorrect dwarf info generated by
>>> open64 compiler or gdb issues, since the gcc build kernel binary is
>>> able to debug.
>>> I compared the dwarf info output of the two compiler with objdump
>>> --dwarf=info , open64's binary is about 1.95GB and gcc's binary is
>>> 1.72GB, is that too large?
>
>>> Can someone give any clue on this to determine what is wrong here?
>
> There isn't an easy way to know what has gone wrong here.
>
> It could be incorrect DWARF -- meaning a compiler or (less likely)
> linker bug.  Or, it could be a gdb bug.
>
> I would debug it by using objdump or readelf to look at the DWARF around
> the DIEs mentioned in the error message.
>
> The size of the DWARF is probably not an issue.
> At least, this is not the error I would expect in that situation.
>
> Tom

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [help] Linux kernel debug error: Cannot find DIE
  2012-07-12  8:44   ` 朱庆
@ 2012-07-24 19:19     ` Tom Tromey
  0 siblings, 0 replies; 4+ messages in thread
From: Tom Tromey @ 2012-07-24 19:19 UTC (permalink / raw)
  To: 朱庆; +Cc: gdb

>>>>> ">" == 朱庆  <zqing1986@gmail.com> writes:

>> I accept your suggestion and have a look at dwarf dump, and find some
>> interestings:
>> I just write very 2 simple case, and link them.
>> There is warning like with the linked object:
>> objdump: Warning: Bogus end-of-siblings marker detected at offset 7a
>> in .debug_info section
>> Does this warning will affect debugging that causes errors I met?

It is hard to say for sure what the effect will be, but it does sound
like your compiler or linker has a bug.

Tom

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-07-24 19:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-11  9:32 [help] Linux kernel debug error: Cannot find DIE 朱庆
2012-07-11 20:40 ` Tom Tromey
2012-07-12  8:44   ` 朱庆
2012-07-24 19:19     ` Tom Tromey

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).