[PATCH] Fix for gdb.base/break-idempotent.exp

Carl Love cel@us.ibm.com
Tue Jun 14 22:38:22 GMT 2022


GDB maintainers:

The gdb.base/break-idempotent.exp test generates errors trying to set
and remove breakpoints.  The issue is gdb is trying to set and remove
breakpoints in skip_hw_watchpoint_tests not in break-idempotent. The
issue is the skip_hw_watchpoint_test restarts gdb on the test hw
watchpoint test binary after gdb has been started for the break-
idempotent.exp test messing up the test.

This patch moves the check for hardware breakpoints before running the
break-idempotent tests.  The move also improves the performance as the
skip_hw_watchpoint_test only needs to be run once rather for each test
case.  

The patch has been tested on Power 10 and fixes the failures seen on
PowerPC.

Please let me know if this patch is acceptable for mainline.

                Carl Love


-------------------------------------------------
Fix for gdb.base/break-idempotent.exp

---
 gdb/testsuite/gdb.base/break-idempotent.exp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.base/break-idempotent.exp b/gdb/testsuite/gdb.base/break-idempotent.exp
index 29002f103a8..38b7632a7fc 100644
--- a/gdb/testsuite/gdb.base/break-idempotent.exp
+++ b/gdb/testsuite/gdb.base/break-idempotent.exp
@@ -145,6 +145,16 @@ proc test_break { always_inserted break_command } {
     }
 }
 
+# The skip_hw_watchpoint_tests generates a small test source file to test if HW
+# watchpoints are supported.  Do not want the compile and test for the skip
+# hw watchpoint to restart gdb after the break-idempotemt test has is started
+# on gdb.  Do the skip_hw_watchpoint_tests first.
+if {[skip_hw_watchpoint_tests]} {
+    set skip_hw_wp 1
+} else {
+    set skip_hw_wp 0
+}
+
 # The testcase uses the "file" command to force breakpoint re-set in
 # GDB.  Test both with and without PIE, as GDB used to mishandle
 # breakpoint re-set when reloading PIEs.
@@ -174,7 +184,7 @@ foreach_with_prefix pie { "nopie" "pie" } {
 	    test_break $always_inserted "hbreak"
 	}
 
-	if {![skip_hw_watchpoint_tests]} {
+	if {!$skip_hw_wp} {
 	    test_break $always_inserted "watch"
 	}
 
-- 
2.31.1




More information about the Gdb-patches mailing list