This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Improve separate debug file support for elfutils
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Cc: Daniel Jacobowitz <drow at false dot org>
- Date: Sun, 15 Oct 2006 01:45:41 +0200
- Subject: Re: Improve separate debug file support for elfutils
- References: <20061006202550.GA16735@nevyn.them.org>
Hi Daniel,
thanks for this patch. Unfortunately using CVS + this patch the problem is
still present:
Reading symbols from /lib/modules/2.6.18-1.2747.fc6/kernel/fs/ext3/ext3.ko...Reading symbols from /usr/lib/debug/lib/modules/2.6.18-1.2747.fc6/kernel/fs/ext3/ext3.ko.debug...DW_FORM_strp pointing outside of .debug_str section [in module /usr/lib/debug/lib/modules/2.6.18-1.2747.fc6/kernel/fs/ext3/ext3.ko.debug]
These two testfiles stored at:
http://www.jankratochvil.net/priv/ext3-debug.tar.gz
According to the error I believe the patch also needs to cover libbfd.
Is it valid it still needs to be patched for this case?
Jakub Jelinek was confirming before that elfutils produce in some way valid
ELFs - with the missing strtab/symtab. I did not check the binaries myself.
Thanks for info,
Jan
On Fri, 06 Oct 2006 22:25:50 +0200, Daniel Jacobowitz wrote:
> It turns out that elfutils's eu-strip differs from objcopy --only-keep-debug
> in one important respect: elfutils tends to leave .symtab in the original
> file and put a NOBITS copy in the separate debug file, but objcopy moves the
> whole symtab. This difference shows up a problem in GDB.
>
> We search for the section containing the PC in a bunch of places, mostly for
> overlay support (does this even still work? no idea). When we look up the
> section for the PC, we might find either the copy in the separate debug file
> or the original; they cover the same PC ranges. So we need to allow the
> two sections to be treated as equal. That's what this patch implements.
> I'm not sure how well it would work with overlays - but I don't see a way,
> even in theory, to do better.
>
> The change to "info sym" is a cosmetic improvement, which I made while
> trying to find a way to test this portably. The original test was on ARM
> with Thumb; we would try to look up the minsym to figure out whether to
> set a 2-byte or 4-byte breakpoint, and by failing to find the minsym,
> we set the wrong type.
>
> I plan to commit this, probably next week, unless someone happens to have
> an idea for another solution. Tested x86_64-pc-linux-gnu.
>
> --
> Daniel Jacobowitz
> CodeSourcery
>
> 2006-10-06 Daniel Jacobowitz <dan@codesourcery.com>
>
> * Makefile.in (symtab.o): Update.
> * symtab.h (matching_bfd_section): New prototype.
> * symtab.c (matching_bfd_section): New.
> (find_pc_sect_psymbol, find_pc_sect_symtab): Use it.
> * minsyms.c (lookup_minimal_symbol_by_pc_section): Likewise.
> * printcmd.c (sym_info): Ignore separate debug objfiles.
>
> 2006-10-06 Daniel Jacobowitz <dan@codesourcery.com>
>
> * gdb.base/sepdebug.exp: Remove debug format test.
> * lib/gdb.exp (gdb_gnu_strip_debug): Perform debug format test.
> Handle no-symtab.
> * gdb.base/sepsymtab.c, gdb.base/sepsymtab.exp: New.
>
[snip]