gdb: use archive name in warning when appropriate
authorAndrew Burgess <aburgess@redhat.com>
Sat, 23 Sep 2023 13:29:40 +0000 (14:29 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Thu, 5 Oct 2023 11:21:45 +0000 (12:21 +0100)
commit95cb8bf72b6f75e5b672131389ff7496bfa47ebe
tree269cc87f7134d5d78af1a1ab3701e52c8bb966e5
parent5c18eb6bb54242d61fd03aa781e20f91c8c30d72
gdb: use archive name in warning when appropriate

While working on some other patch I noticed that in reread_symbols
there is a diagnostic message that can be printed, and in some cases
we might use the wrong filename in the message.

The code in question is checking to see if an objfile has changed on
disk, we do this by stat-ing the on disk file and checking the mtime.
If this file has been removed from disk then we print a message that
the file has been removed, however, if the objfile is within an
archive then we stat the archive itself, but then warn that the
component within the archive has disappeared.  I think it makes more
sense to say that the archive has disappeared.

The last related commit is this one:

  commit 02aeec7bde8ec8a04d14a5637e75f1c6ab899e23
  Date:   Tue Apr 27 21:01:30 2010 +0000

      Check library name rather than member name when rereading symbols.

Though this just makes the code to stat the archive unconditional, the
code in question existed before this commit.

However, the above commit doesn't include any tests, and seems to
indicate that the problem being addressed was seen on Darwin.  I'm not
sure how to setup a test where GDB is using an objfile from within an
archive, and so there's no tests for this commit...

... but if someone can let me know how I can setup a suitable test,
please let me know and I'll try to get something working.

Approved-By: Tom Tromey <tom@tromey.com>
gdb/symfile.c