[PATCH v2] gdb.base/watchpoint-unaligned.exp: Always initialize wpoffset_to_wpnum

Alexandra Hájková ahajkova@redhat.com
Tue Apr 25 10:47:32 GMT 2023


to avoid TCL error which happens in some aarch64 types.

ERROR: in testcase /root/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
ERROR:  can't read "wpoffset_to_wpnum(1)": no such element in array
ERROR:  tcl error code TCL READ VARNAME
ERROR:  tcl error info:
can't read "wpoffset_to_wpnum(1)": no such element in array
    while executing

Fixes bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30340
---
The test uses gdb_test_multiple, and there are plenty of other reasons (see gdb_test_multiple in lib/gdb.exp) that a test using gdb_test_multiple might fail.  We're never going to recreate each of those in the gdb.base/watchpoint-unaligned.exp script just so that we can ensure the variable is initialized.  Instead we should just ensure the variable is always initialized.
 
 gdb/testsuite/gdb.base/watchpoint-unaligned.exp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.base/watchpoint-unaligned.exp b/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
index ce5a1e5bf66..d31a9cdc2c8 100644
--- a/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
@@ -103,6 +103,8 @@ foreach wpcount {4 7} {
     for {set wpoffset 1} {$wpoffset <= $wpcount} {incr wpoffset} {
 	set test "$rwatch data.u.size1\[$wpoffset\]"
 	set wpnum ""
+	# Initialize the result incase the test fails.
+	set wpoffset_to_wpnum($wpoffset) 0
 	gdb_test_multiple $test $test {
 	    -re "$rwatch_exp (\[0-9\]+): .*\r\n$gdb_prompt $" {
 		set wpoffset_to_wpnum($wpoffset) $expect_out(1,string)
@@ -113,7 +115,6 @@ foreach wpcount {4 7} {
 		    setup_xfail breakpoints/23131 "arm*-*-*"
 		}
 		fail $test
-		set wpoffset_to_wpnum($wpoffset) 0
 	    }
 	}
     }
-- 
2.40.0



More information about the Gdb-patches mailing list