testsuite: Persistent gdbserver cleanup
authorMaciej W. Rozycki <macro@codesourcery.com>
Thu, 24 Oct 2013 22:32:30 +0000 (23:32 +0100)
committerTom Tromey <tromey@sourceware.org>
Fri, 25 Oct 2013 14:03:00 +0000 (14:03 +0000)
* lib/gdb.exp (gdb_finish): Send a kill request to `gdbserver'
if in the persistent mode.
* gdb.trace/disconnected-tracing.exp: Reconnect before completion.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.trace/disconnected-tracing.exp
gdb/testsuite/lib/gdb.exp

index 003208d..40391c9 100644 (file)
@@ -1,5 +1,11 @@
 2013-10-24  Maciej W. Rozycki  <macro@codesourcery.com>
 
+       * lib/gdb.exp (gdb_finish): Send a kill request to `gdbserver'
+       if in the persistent mode.
+       * gdb.trace/disconnected-tracing.exp: Reconnect before completion.
+
+2013-10-24  Maciej W. Rozycki  <macro@codesourcery.com>
+
        * lib/gdb.exp (gdb_gcore_cmd): Also handle a "Target does not
        support core file generation" reply.
 
index 7598d8a..2f44324 100644 (file)
@@ -147,3 +147,6 @@ proc disconnected_tfind {  } {
 }
 
 disconnected_tfind
+
+# Reconnect for a clean gdbserver shutdown.
+gdb_reconnect
index e4a6134..4bfa4b4 100644 (file)
@@ -3612,8 +3612,23 @@ proc gdb_init { args } {
 }
 
 proc gdb_finish { } {
+    global gdbserver_reconnect_p
+    global gdb_prompt
     global cleanfiles
 
+    # Give persistent gdbserver a chance to terminate before GDB is killed.
+    if {[info exists gdbserver_reconnect_p] && $gdbserver_reconnect_p} {
+       send_gdb "kill\n";
+       gdb_expect 10 {
+           -re "y or n" {
+               send_gdb "y\n";
+               exp_continue;
+           }
+           -re "$gdb_prompt $" {
+           }
+       }
+    }
+
     # Exit first, so that the files are no longer in use.
     gdb_exit