From a8654e7d784980cb4596f685964200fcc1164c78 Mon Sep 17 00:00:00 2001 From: Philippe Waroquiers Date: Sun, 21 Jun 2020 21:26:25 +0200 Subject: 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 * 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/exec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gdb/exec.c') diff --git a/gdb/exec.c b/gdb/exec.c index fa770c6..de473fb 100644 --- a/gdb/exec.c +++ b/gdb/exec.c @@ -315,7 +315,10 @@ validate_exec_file (int from_tty) { symfile_add_flags add_flags = SYMFILE_MAINLINE; if (from_tty) - add_flags |= SYMFILE_VERBOSE; + { + add_flags |= SYMFILE_VERBOSE; + add_flags |= SYMFILE_ALWAYS_CONFIRM; + } try { symbol_file_add_main (exec_file_target.c_str (), add_flags); -- cgit v1.1