From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26542 invoked by alias); 23 Jan 2003 23:04:10 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 26535 invoked from network); 23 Jan 2003 23:04:08 -0000 Received: from unknown (HELO zenia.red-bean.com) (66.244.67.22) by 172.16.49.205 with SMTP; 23 Jan 2003 23:04:08 -0000 Received: from zenia.red-bean.com (localhost.localdomain [127.0.0.1]) by zenia.red-bean.com (8.12.5/8.12.5) with ESMTP id h0NMvc8A006454; Thu, 23 Jan 2003 17:57:39 -0500 Received: (from jimb@localhost) by zenia.red-bean.com (8.12.5/8.12.5/Submit) id h0NMvaLS006450; Thu, 23 Jan 2003 17:57:36 -0500 To: gdb-patches@sources.redhat.com Subject: Re: [repost] Re: RFC: support debug info in separate files References: From: Jim Blandy Date: Thu, 23 Jan 2003 23:04:00 -0000 In-Reply-To: Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2.92 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-01/txt/msg00708.txt.bz2 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 > http://sources.redhat.com/ml/gdb-patches/2002-12/msg00627.html > > RFC: Allow symbol_file_add to take section_offsets table > http://sources.redhat.com/ml/gdb-patches/2002-11/msg00634.html > > 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. > * Makefile.in (symfile.o): Note dependency on "filenames.h". > * configure.in: Handle --with-separate-debug-dir config option. > * acinclude.m4 (AC_DEFINE_DIR): New macro. > * acconfig.h (DEBUGDIR): New macro. > * configure, aclocal.m4, config.in: Regenerated. > > gdb/doc/ChangeLog: > 2002-12-23 Jim Blandy > > * gdb.texinfo (Separate Debug Files): New section.