summaryrefslogtreecommitdiff
path: root/gdb/symfile-add-flags.h
diff options
context:
space:
mode:
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>2020-06-21 21:26:25 +0200
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>2020-06-24 22:21:07 +0200
commita8654e7d784980cb4596f685964200fcc1164c78 (patch)
tree370684971b40dbaf07a82222c41dac37d2be9c6f /gdb/symfile-add-flags.h
parent069057bf0f8f776f7981c94b4e3cbc821342e593 (diff)
downloadbinutils-gdb-a8654e7d784980cb4596f685964200fcc1164c78.tar.gz
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.
Diffstat (limited to 'gdb/symfile-add-flags.h')
-rw-r--r--gdb/symfile-add-flags.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/symfile-add-flags.h b/gdb/symfile-add-flags.h
index 740357bc125..2b2c2e68f27 100644
--- a/gdb/symfile-add-flags.h
+++ b/gdb/symfile-add-flags.h
@@ -44,6 +44,12 @@ enum symfile_add_flag : unsigned
/* The new objfile should be marked OBJF_NOT_FILENAME. */
SYMFILE_NOT_FILENAME = 1 << 5,
+
+ /* If SYMFILE_VERBOSE (interpreted as from_tty) and SYMFILE_ALWAYS_CONFIRM,
+ always ask user to confirm loading the symbol file.
+ Without this flag, symbol_file_add_with_addrs asks a confirmation only
+ for a main symbol file replacing a file having symbols. */
+ SYMFILE_ALWAYS_CONFIRM = 1 << 6,
};
DEF_ENUM_FLAGS_TYPE (enum symfile_add_flag, symfile_add_flags);