summaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2022-06-02 20:40:06 +0200
committerTom de Vries <tdevries@suse.de>2022-06-02 20:40:06 +0200
commitbb785a92a88b538831d72e36f2d0fce76e0a32b1 (patch)
tree8753ee70c5657675e5f2fcfc0663435c0cb528ea /gdb/testsuite
parent0c8cd1de90b97f12b27b40c2922a03a68932eea1 (diff)
[gdb/testsuite] Detect change instead of init in gdb.mi/mi-var-block.exp
On openSUSE Tumbleweed with target board unix/-m32, I run into: ... PASS: gdb.mi/mi-var-block.exp: step at do_block_test 2 Expecting: ^(-var-update \*[^M ]+)?(\^done,changelist=\[{name="foo",in_scope="true",type_changed="false",has_more="0"}, {name="cb",in_scope="true",type_changed="false",has_more="0"}\][^M ]+[(]gdb[)] ^M [ ]*) -var-update *^M ^done,changelist=[{name="foo",in_scope="true",type_changed="false",has_more="0"}]^M (gdb) ^M FAIL: gdb.mi/mi-var-block.exp: update all vars: cb foo changed (unexpected output) ... The problem is that the test-case attempts to detect a change in the cb variable caused by this initialization: ... void do_block_tests () { int cb = 12; ... but that only works if the stack location happens to be unequal to 12 before the initialization. Fix this by first initializing to 0, and then changing the value to 12: ... - int cb = 12; + int cb = 0; + cb = 12; ... and detecting that change. Tested on x86_64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29195
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-block.exp5
-rw-r--r--gdb/testsuite/gdb.mi/var-cmd.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.mi/mi-var-block.exp b/gdb/testsuite/gdb.mi/mi-var-block.exp
index 2f8d39a6ac..a1ef2d1ad5 100644
--- a/gdb/testsuite/gdb.mi/mi-var-block.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-block.exp
@@ -40,6 +40,11 @@ mi_gdb_load ${binfile}
mi_runto do_block_tests
+# step to "cb = 12;"
+mi_step_to "do_block_tests" "" "var-cmd.c" \
+ [gdb_get_line_number "cb = 12;"] \
+ "step at do_block_test 0"
+
# Test: c_variable-3.2
# Desc: create cb and foo
mi_create_varobj "cb" "cb" "create local variable cb"
diff --git a/gdb/testsuite/gdb.mi/var-cmd.c b/gdb/testsuite/gdb.mi/var-cmd.c
index fddb0d39a5..f3312788a8 100644
--- a/gdb/testsuite/gdb.mi/var-cmd.c
+++ b/gdb/testsuite/gdb.mi/var-cmd.c
@@ -207,7 +207,8 @@ subroutine1 (int i, long *l)
void
do_block_tests ()
{
- int cb = 12;
+ int cb = 0;
+ cb = 12;
{
int foo;