This is the mail archive of the gdb-patches@sourceware.org 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: [PATCH] Support gzip compressed exec and core files in gdb


On 03/11/15 17:08, Alan Modra wrote:
On Wed, Mar 11, 2015 at 07:56:30AM -0700, Michael Eager wrote:
On 03/11/15 01:14, Alan Modra wrote:
On Tue, Mar 10, 2015 at 04:01:42PM -0700, Michael Eager wrote:
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.

I'd prefer you do this entirely outside of BFD, without adding another
field to struct bfd.  I think that can be done by simply clearing
abfd->cacheable on files you uncompress.  This prevents BFD from
closing the file, so you won't need to open it again.

GDB closes the exec file, then uses BFD to seek (I think when reading
syms).  BFD then re-opens the file, so it needs the name of the
uncompressed file.

Really?  I think it quite unclean if gdb expects BFD to reopen a file
that gdb has closed!

Agreed.

GDB doesn't expect BFD to reopen the file, per se.  But it does a seek
on an exec file (IIRC, while reading symbols) which it previously closed
and when BFD notices that the file is closed, it opens it.  I don't think
that it is feasible to remove calls to exec_close() so this doesn't happen.

There's overlapping code between BFD and GDB.  It would be much cleaner if
GDB let BFD do everything with files, and BFD had support for opening files
with additional flags like O_CLOEXEC.

--
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


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