This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Support gzip compressed exec and core files in gdb
- From: Cary Coutant <ccoutant at google dot com>
- To: Michael Eager <eager at eagerm dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>, binutils <binutils at sourceware dot org>
- Date: Wed, 11 Mar 2015 11:24:16 -0700
- Subject: Re: [PATCH] Support gzip compressed exec and core files in gdb
- Authentication-results: sourceware.org; auth=none
- References: <54FF77D6 dot 7010400 at eagerm dot com>
How will this affect split DWARF?
If you uncompress a foo.gz binary, and the binary has relative paths
to .dwo files, will GDB look for the .dwo files relative to the
original binary, or to the uncompressed binary?
When it looks for a .dwp file, will it look for foo.dwp or foo.gz.dwp,
and will it look in the same directory as the original, or in /tmp?
If foo.dwp is also compressed, will it uncompress that?
Would it make sense to support .tar.gz/.tgz files containing both a
binary and its .dwp?
-cary
On Tue, Mar 10, 2015 at 4:01 PM, Michael Eager <eager@eagerm.com> wrote:
> Add support to automatically unzip compressed executable and core files.
> Files will be uncompressed into temporary directory (/tmp or $TMPDIR)
> and are deleted when GDB exits. This should be transparent to users,
> except for disk space requirements. The name of the uncompressed file is
> mentioned, but all references to the file in GDB messages is to the file
> which the user specified.
>
> This operation cannot be done completely by BFD because BFD allows an opened
> file to be passed to it for processing. GDB uses this functionality.
>
> BFD:
> * bfd-in2.h: Regenerate.
> * bfd.c (struct bfd): Add uncompressed_filename.
> * bfdio.c (bfd_get_mtime): Set bfd->mtime_set to true.
> * cache.c (bfd_open): Open previously created uncompressed file.
>
> GDB:
> * common/filestuff.c (struct compressed_file_cache_search,
> eq_compressed_file,
> is_gzip, decompress_gzip, do_compressed_cleanup, gdb_uncompress): New.
> * common/filestuff.h (gdb_uncompress): Declare.
> * corelow.c (core_open): Uncompress core file.
> * exec.c (exec_file_attach): Uncompress exe file.
> * symfile.c (symfile_bfd_open): Uncompress sym (exe) file.
>
> GDB/DOC:
> * gdb.texinfo: Mention gzipped exec and core files.
>
> --
> Michael Eager eager@eagercon.com
> 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077