aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.server/ext-run.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.server/ext-run.exp')
-rw-r--r--gdb/testsuite/gdb.server/ext-run.exp17
1 files changed, 16 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.server/ext-run.exp b/gdb/testsuite/gdb.server/ext-run.exp
index d8fda73..e268a7d 100644
--- a/gdb/testsuite/gdb.server/ext-run.exp
+++ b/gdb/testsuite/gdb.server/ext-run.exp
@@ -52,7 +52,22 @@ if { [istarget *-*-linux*] } {
# On Linux, gdbserver can also report the list of processes.
# But only if xml support is compiled in.
if { $do_xml_test } {
- gdb_test "info os processes" ".*pid +user +command.*1 +root +\[/a-z\]*init.*" "get process list"
+ # This is done in a way to avoid the timeout that can occur from
+ # applying .* regexp to large output. It is copied from
+ # gdb.base/maint.exp "maint check-symtabs".
+ send_gdb "info os processes\n"
+ gdb_expect {
+ -re ".*pid +user +command.*1 +root +\[/a-z\]*init" {
+ gdb_expect {
+ -re "$gdb_prompt $" {
+ pass "get process list"
+ }
+ timeout { fail "(timeout) get process list" }
+ }
+ }
+ -re ".*$gdb_prompt $" { fail "get process list" }
+ timeout { fail "(timeout) get process list" }
+ }
}
}