]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Adjust gdb.base/memops-watchpoint.exp for Cygwin/Windows
authorPedro Alves <pedro@palves.net>
Tue, 11 Feb 2025 14:43:39 +0000 (14:43 +0000)
committerPedro Alves <pedro@palves.net>
Mon, 9 Jun 2025 17:09:21 +0000 (18:09 +0100)
When testing gdb.base/memops-watchpoint.exp on Cygwin, I see:

 ...
 continue
 Continuing.

 Thread 1 "memops-watchpoint" hit Hardware watchpoint 2: -location a[28]

 Old value = 104 'h'
 New value = 0 '\000'
 memset () at /usr/src/debug/cygwin-3.5.4-1/winsup/cygwin/x86_64/memset.S:68
 68              rep     stosq
 (gdb) FAIL: gdb.base/memops-watchpoint.exp: continue until memset watchpoint hits

Etc.

This fails on Windows because there all inferiors are multi-threaded
(because both Windows and the Cygwin runtime spawn helper threads), so
we always see the

  'Thread N "foo" hit'

prefix, which the testcase isn't expecting.

Fix it by optionally expecting such the "Thread ... hit" prefix bit.

Change-Id: Ia06eaf1e152f512f39324d04298e6784eca3e537

gdb/testsuite/gdb.base/memops-watchpoint.exp

index cabc306887c7a6bb318d7ba8637e23d0449b74e2..c23dac5c2d3ecd3347f1c5457bbbada6858e91bc 100644 (file)
@@ -54,6 +54,8 @@ gdb_test "watch -location c\[28\]" \
 
 proc continue_to_watchpoint {array_re source_function function_re
                             old_value_re new_value_re} {
+    set thread_prefix_re "(?:Thread $::decimal \[^\r\n\]* hit )?"
+
     set saw_watch_trigger 0
     set saw_function 0
     set is_supported 1
@@ -61,7 +63,7 @@ proc continue_to_watchpoint {array_re source_function function_re
        [multi_line \
             "Continuing\\." \
             "" \
-            "(Hardware w|W)atchpoint ${::decimal}: -location ${array_re}\\\[28\\\]" \
+            "${thread_prefix_re}(Hardware w|W)atchpoint ${::decimal}: -location ${array_re}\\\[28\\\]" \
             "" \
             "Old value = ${old_value_re}" \
             "New value = ${new_value_re}"]