-# Copyright 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
-# Free Software Foundation, Inc.
+# Copyright 2002-2019 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
set MIFLAGS "-i=mi"
gdb_exit
-if {[mi_gdb_start]} {
- continue
+
+save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"set non-stop on\""
+ if {[mi_gdb_start]} {
+ continue
+ }
}
proc mi_nonstop_resume { command test } {
#
# Start here
#
-set testfile "non-stop"
-set srcfile "$testfile.c"
-set binfile "$objdir/$subdir/mi-$testfile"
+standard_testfile non-stop.c
-set options [list debug incdir=$objdir]
+set options [list debug]
if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $options] != "" } {
return -1
}
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load $binfile
-mi_gdb_test "-gdb-set non-stop 1" ".*"
-mi_gdb_test "-gdb-set target-async 1" ".*"
-detect_async
+mi_gdb_test "-gdb-set mi-async 1" ".*"
+mi_detect_async
if { [mi_run_to_main] < 0 } {
continue
}
-mi_create_breakpoint break_at_me 2 keep break_at_me .* .* .* "breakpoint at marker"
+mi_create_breakpoint break_at_me "breakpoint at marker" \
+ -number 2 -func break_at_me
mi_nonstop_resume "exec-continue" "resume 1"
mi_expect_stop "breakpoint-hit" "break_at_me" ".*" "non-stop.c" ".*" {"" "disp=\"keep\""} "w0,i0 stop"
sleep 1
mi_check_thread_states {"stopped" "stopped" "stopped"} "thread state, stop 4"
-mi_gdb_test "-exec-continue --all" ".*\\*running,thread-id=\"3\"\r\n\\*running,thread-id=\"2\"\r\n\\*running,thread-id=\"1\"" \
+mi_gdb_test "-exec-continue --all" ".*\\*running,thread-id=\"1\"\r\n\\*running,thread-id=\"2\"\r\n\\*running,thread-id=\"3\"" \
"resume all"
mi_expect_stop "breakpoint-hit" "break_at_me" "\[^\n\]*" "non-stop.c" "\[0-9\]*" {"" "disp=\"keep\""} "w0,i2 stop"
mi_gdb_test "-gdb-set --thread 3 variable exit_first_thread=1" ".*\\^done" "ask the second thread to exit"
set test "wait for thread exit"
-if { [is_remote target] } {
+if { [mi_is_target_remote] } {
# The remote protocol doesn't have support for thread exit
# notifications.
unsupported $test