This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [repost] Re: RFC: support debug info in separate files

I've committed this patch, after making the changes to the
documentation that Eli suggested.  I'll take care of the maint.exp
regressions in a bit.

Jim Blandy <> writes:

> [My previous post omitted the patch to acconfig.h.]
> Here's a new shot at the separate debug patch.  It's updated to apply
> to the current branch, and I believe I've addressed the comments folks
> have made:
> - The documentation has been completely rewritten, and provides much
>   more detail.  It includes all the information needed to implement
>   `strip -f' in the GNU binutils, for example.  It is better indexed.
> - The name ".debug" can be overridden by xm- files for systems that
>   can't handle names like that.
> - The CRC function has a more descriptive name.
> Using separate debug info does introduce three new test suite
> failures:
> FAIL: gdb.base/maint.exp: maint print objfiles: psymtabs
> FAIL: gdb.base/maint.exp: maint print objfiles: symtabs
> FAIL: gdb.base/maint.exp: maint print msymbols
> These do not reflect GDB misbehavior: the objfile in question has no
> psymtabs, symtabs, or msymbols, but the test suite assumes they
> should.  I think 'maint print objfiles' should print something
> indicating when an objfile has an associated separated debug file, and
> that the test should recognize and cope with this, but it seems like
> that should be a separate patch.
> Before you can apply this patch, you'll need to apply the following:
> Re: RFC: allow syms_from_objfile to take a section offset table directly
> RFC: Allow symbol_file_add to take section_offsets table
> gdb/ChangeLog:
> 2002-12-23  Alexander Larsson <>
> 	    Jim Blandy  <>
> 	Add support for executables whose debug info has been separated
> 	out into a separate file, leaving only a link behind.
> 	* objfiles.h (struct objfile): New fields: separate_debug_objfile
> 	and separate_debug_objfile_backlink.
> 	(put_objfile_before): New declaration.
> 	* symfile.c: #include "filenames.h".
> 	(symbol_file_add_with_addrs_or_offsets): If this objfile has its
> 	debug info in a separate file, read that, too. Save the addrs
> 	argument, so we can use it again to read the separated debug info;
> 	syms_from_objfile modifies the table we pass it.
> 	(reread_symbols): After re-reading an objfile, call
> 	reread_separate_symbols to refresh its separate debug info
> 	objfile, if it has one.
> 	(reread_separate_symbols, find_separate_debug_file,
> 	get_debug_link_info, separate_debug_file_exists): New functions.
> 	(debug_file_directory): New global var.
> 	(_initialize_symfile): Initialize debug_file_directory, and
> 	provide the new `set debug-file-directory' command to let the user
> 	change it.
> 	* objfiles.c (free_objfile): If this objfile has its debug info in
> 	a separate objfile, free that one too.  If this is itself a
> 	separate debug info objfile, clear our parent's backlink.
> 	(put_objfile_before): New function.
> 	* utils.c (gnu_debuglink_crc32): New function.
> 	* defs.h (gnu_debuglink_crc32): New declaration.
> 	* (symfile.o): Note dependency on "filenames.h".
> 	* Handle --with-separate-debug-dir config option.
> 	* acinclude.m4 (AC_DEFINE_DIR): New macro.
> 	* acconfig.h (DEBUGDIR): New macro.
> 	* configure, aclocal.m4, Regenerated.
> gdb/doc/ChangeLog:
> 2002-12-23  Jim Blandy  <>
> 	* gdb.texinfo (Separate Debug Files): New section.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]