aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2021-02-05 10:56:39 +0100
committerTom de Vries <tdevries@suse.de>2021-02-05 10:56:39 +0100
commita22ec6e8a4b9006e342ad20c36357a5ba8ba1e74 (patch)
tree7536846dd7a2342d4b8e8a0330364d7e17a8d8fd
parentae7104966177c7bcb7bef9e1445489d9d2f97f06 (diff)
downloadgdb-a22ec6e8a4b9006e342ad20c36357a5ba8ba1e74.zip
gdb-a22ec6e8a4b9006e342ad20c36357a5ba8ba1e74.tar.gz
gdb-a22ec6e8a4b9006e342ad20c36357a5ba8ba1e74.tar.bz2
[gdb/testsuite] Add KFAILs for PR symtab/24549
When an executable contains an index such as a .gdb_index or .debug_names section, gdb ignores the DW_AT_subprogram attribute. This problem has been filed as PR symtab/24549. Add KFAILs for this PR in test-cases gdb.dwarf2/main-subprogram.exp and gdb.fortran/mixed-lang-stack.exp. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2021-02-05 Tom de Vries <tdevries@suse.de> * gdb.dwarf2/main-subprogram.exp: Add KFAIL for PR symtab/24549. * gdb.fortran/mixed-lang-stack.exp: Same.
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.dwarf2/main-subprogram.exp14
-rw-r--r--gdb/testsuite/gdb.fortran/mixed-lang-stack.exp21
3 files changed, 37 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 9c24a49..84f0647 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2021-02-05 Tom de Vries <tdevries@suse.de>
+ * gdb.dwarf2/main-subprogram.exp: Add KFAIL for PR symtab/24549.
+ * gdb.fortran/mixed-lang-stack.exp: Same.
+
+2021-02-05 Tom de Vries <tdevries@suse.de>
+
PR exp/27265
* gdb.base/complex-parts.exp: Add tests.
diff --git a/gdb/testsuite/gdb.dwarf2/main-subprogram.exp b/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
index ad0113e..c618a40 100644
--- a/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
+++ b/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
@@ -55,6 +55,8 @@ if {[prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
+set have_index [exec_has_index_section $binfile]
+
# Test that the "start" command stops in the "mymain" function.
# This should happen because we used DW_AT_main_subprogram to tell gdb
# that this was the real "main".
@@ -64,4 +66,14 @@ if {[gdb_start_cmd] < 0} {
return -1
}
-gdb_test "" "Temporary breakpoint .* mymain.*" "stopped at mymain"
+gdb_test_multiple "" "stopped at mymain" {
+ -re -wrap "Temporary breakpoint .* mymain.*" {
+ pass $gdb_test_name
+ }
+ -re -wrap "Temporary breakpoint .* main.*" {
+ if { $have_index } {
+ setup_kfail "gdb/24549" *-*-*
+ }
+ fail $gdb_test_name
+ }
+}
diff --git a/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp b/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
index 411fd78..6a249e6 100644
--- a/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
+++ b/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
@@ -35,11 +35,13 @@ if {[prepare_for_testing_full "failed to prepare" \
return -1
}
+set have_index [exec_has_index_section $binfile]
+
# Runs the test program and examins the stack. LANG is a string, the
# value to pass to GDB's 'set language ...' command.
proc run_tests { lang } {
with_test_prefix "lang=${lang}" {
- global binfile hex
+ global binfile hex have_index
clean_restart ${binfile}
@@ -74,7 +76,22 @@ proc run_tests { lang } {
"#7\\s+$hex in mixed_func_1b \\($1b_args\\) at \[^\r\n\]+" \
"#8\\s+$hex in mixed_func_1a \\(\\) at \[^\r\n\]+" \
"#9\\s+$hex in mixed_stack_main \\(\\) at \[^\r\n\]+" ]
- gdb_test "bt -frame-arguments all" $bt_stack
+ set main_args "argc=1, argv=${hex}( \[^\r\n\]+)?"
+ set bt_stack_kfail \
+ [multi_line \
+ $bt_stack \
+ "#10\\s+$hex in main \\($main_args\\) at \[^\r\n\]+"]
+ gdb_test_multiple "bt -frame-arguments all" "" {
+ -re -wrap $bt_stack {
+ pass $gdb_test_name
+ }
+ -re -wrap $bt_stack_kfail {
+ if { $have_index } {
+ setup_kfail "gdb/24549" *-*-*
+ }
+ fail $gdb_test_name
+ }
+ }
# Check the language for frame #0.
gdb_test "info frame" "source language fortran\..*" \