aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-03-13 16:47:25 +0100
committerTom de Vries <tdevries@suse.de>2023-03-13 16:47:25 +0100
commit275589d9a0fda6fe898aae678588bb3841d3fed1 (patch)
tree50128e6c82fa8758b94279af337c0f85809779a5
parent1878b6b5f67ba79ac0903b0fd5768adafeb55109 (diff)
downloadbinutils-275589d9a0fda6fe898aae678588bb3841d3fed1.zip
binutils-275589d9a0fda6fe898aae678588bb3841d3fed1.tar.gz
binutils-275589d9a0fda6fe898aae678588bb3841d3fed1.tar.bz2
[gdb/testsuite] Fix gdb.threads/step-bg-decr-pc-switch-thread.exp for native-gdbserver
With test-case gdb.threads/step-bg-decr-pc-switch-thread.exp and target board native-gdbserver, I run into: ... (gdb) UNSUPPORTED: gdb.threads/step-bg-decr-pc-switch-thread.exp: \ switch to main thread Remote debugging from host ::1, port 43914^M monitor exit^M Cannot execute this command while the target is running.^M Use the "interrupt" command to stop the target^M and then try again.^M (gdb) WARNING: Timed out waiting for EOF in server after monitor exit ... Fix this by following the advice and issuing an interrupt command, allowing the following monitor exit command to succeed. Tested on x86_64-linux.
-rw-r--r--gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp15
1 files changed, 13 insertions, 2 deletions
diff --git a/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp b/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
index 44899f6..ee7c374 100644
--- a/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
+++ b/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
@@ -55,11 +55,22 @@ gdb_test_no_output "next&" "next& over inf loop"
set test "switch to main thread"
gdb_test_multiple "thread 1" $test {
-re "Cannot execute this command while the target is running.*$gdb_prompt $" {
- unsupported $test
-
+
# With remote targets, we can't send any other remote packet
# until the target stops. Switching thread wants to ask the
# remote side whether the thread is alive.
+ unsupported $gdb_test_name
+
+ # Interrupt running target to allow subsequent "monitor exit" to
+ # succeed.
+ gdb_test_multiple interrupt "" {
+ -re -wrap "" {
+ exp_continue
+ }
+ -re "received signal SIGINT, Interrupt\\.\r\n.*" {
+ pass $gdb_test_name
+ }
+ }
return
}
-re "Switching to thread 1.*\\(running\\)\r\n$gdb_prompt " {