aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2018-07-13 12:01:16 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2018-07-26 08:53:02 +0100
commit3c3bb0580be0027a1c7187b78c747af74dcfa884 (patch)
tree4b643758965fcbbec45e7f3e1f2b4913d392cb66 /gdb/testsuite
parent33cb30a1f932b5a211aa319a01783d4957ae5d57 (diff)
downloadgdb-3c3bb0580be0027a1c7187b78c747af74dcfa884.zip
gdb-3c3bb0580be0027a1c7187b78c747af74dcfa884.tar.gz
gdb-3c3bb0580be0027a1c7187b78c747af74dcfa884.tar.bz2
gdb: Add switch to disable DWARF stack unwinders
Add a maintenance command to disable the DWARF stack unwinders. Normal users would not need this feature, but it is useful to allow extended testing of fallback stack unwinding strategies, for example, prologue scanners. This is a partial implementation of the idea discussed in pr gdb/8434, which talks about a generic ability to disable any frame unwinder. Being able to arbitrarily disable any frame unwinder would be a more complex patch, and I was unsure how useful such a feature would really be, however, I can see (and have) a real need to disable DWARF unwinders. That's why this patch only targets that specific set of unwinders. If in the future we find ourselves adding more switches to disable different unwinders, then we should probably move to a more generic solution, and remove this patch. gdb/ChangeLog: * dwarf2-frame-tailcall.c (tailcall_frame_sniffer): Exit early if DWARF unwinders are disabled. * dwarf2-frame.c: Add dwarf2read.h include. (dwarf2_frame_sniffer): Exit early if DWARF unwinders are disabled. (dwarf2_frame_unwinders_enabled_p): Define. (show_dwarf_unwinders_enabled_p): New function. (_initialize_dwarf2_frame): Register switch to control DWARF unwinder use. * dwarf2-frame.h (dwarf2_frame_unwinders_enabled_p): Declare. * dwarf2read.c (set_dwarf_cmdlist): Remove static keyword. (show_dwarf_cmdlist): Remove static keyword. * dwarf2read.h (set_dwarf_cmdlist): Declare. (show_dwarf_cmdlist): Declare. * NEWS: Document new feature. gdb/doc/ChangeLog: * gdb.texinfo (Maintenance Commands): Add description of maintenance command to control dwarf unwinders. gdb/testsuite/ChangeLog: * gdb.base/maint.exp: Add check that dwarf unwinders control flag is visible.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/maint.exp4
2 files changed, 9 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index aa8b06a..cdba393 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-26 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.base/maint.exp: Add check that dwarf unwinders control flag
+ is visible.
+
2018-07-26 Tom de Vries <tdevries@suse.de>
PR breakpoints/23366
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 92086ee..ee0d089 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -526,6 +526,10 @@ gdb_test_no_output "maint info line-table xxx.c" \
set timeout $oldtimeout
+# Just check that the DWARF unwinders control flag is visible.
+gdb_test "maint show dwarf unwinders" \
+ "The DWARF stack unwinders are currently (on|off)\\."
+
#============test help on maint commands
test_prefix_command_help {"maint info" "maintenance info"} {