Re: [PATCH] Support gzip compressed exec and core files in gdb

Cary Coutant
2015-03-11T18:24:19Z

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