Fixes PR 25475: ensure exec-file-mismatch "ask" always asks in case of mismatch.
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Sun, 21 Jun 2020 19:26:25 +0000 (21:26 +0200)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Wed, 24 Jun 2020 20:21:07 +0000 (22:21 +0200)
commita8654e7d784980cb4596f685964200fcc1164c78
tree370684971b40dbaf07a82222c41dac37d2be9c6f
parent069057bf0f8f776f7981c94b4e3cbc821342e593
Fixes PR 25475: ensure exec-file-mismatch "ask" always asks in case of mismatch.

As explained in https://sourceware.org/bugzilla/show_bug.cgi?id=25475,
when the currently loaded file has no debug symbol,
symbol_file_add_with_addrs does not ask a confirmation to the user
before loading the new symbol file.  The behaviour is not consistent
when symbol_file_add_with_addrs is called due to exec-file-mismatch "ask"
setting.

The PR discusses several solutions/approaches.
The preferred approach (suggested by Joel) is to ensure that GDB always asks
a confirmation when it loads a new symbol file due to exec-file-mismatch,
using a new SYMFILE add-flag.

I tested this manually.  If OK, we can remove the bypass introduced by Tom
in 6b9374f1, in order to always answer to the 'load' question.

gdb/ChangeLog
2020-06-24  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

* symfile-add-flags.h: New flag SYMFILE_ALWAYS_CONFIRM.
* exec.c (validate_exec_file): If from_tty, set both
SYMFILE_VERBOSE (== from_tty) and SYMFILE_ALWAYS_CONFIRM.
* symfile.c (symbol_file_add_with_addrs): if always_confirm
and from_tty, unconditionally ask a confirmation.
gdb/ChangeLog
gdb/exec.c
gdb/symfile-add-flags.h
gdb/symfile.c