* lib/gdb.exp: Close connection to remote host if gdb doesn't
[external/binutils.git] / gdb / testsuite / lib / gdb.exp
index 0a44f6d..1c828bf 100644 (file)
@@ -198,6 +198,8 @@ proc gdb_run_cmd {args} {
            -re "No symbol.*context.*$gdb_prompt $" {}
            -re "The program is not being run.*$gdb_prompt $" {
                gdb_load "";
+               send_gdb "jump *$start\n";
+               exp_continue;
            }
            timeout { perror "Jump to start() failed (timeout)"; return }
        }
@@ -739,8 +741,8 @@ proc default_gdb_start { } {
            return -1
        }
        timeout {
-
            perror "(timeout) GDB never initialized after $timeout seconds."
+           remote_close host;
            return -1
        }
     }
@@ -865,7 +867,7 @@ proc gdb_expect { args } {
            set timeout [target_info gdb,timeout];
        }
     }
-    set code [catch {uplevel remote_expect host $args} string];
+    set code [catch {uplevel remote_expect host $timeout $args} string];
     if [target_info exists gdb,timeout] {
        if [info exists oldt] {
            set timeout $oldt
@@ -940,7 +942,7 @@ proc gdb_continue { function } {
     return [gdb_test "continue" ".*Breakpoint $decimal, $function .*" "continue to $function"];
 }
 
-proc gdb_init { args } {
+proc default_gdb_init { args } {
     gdb_stop_suppressing_tests;
 
     # Uh, this is lame. Really, really, really lame. But there's this *one*
@@ -957,6 +959,10 @@ proc gdb_init { args } {
     }
 }
 
+proc gdb_init { args } {
+    return [default_gdb_init];
+}
+
 proc gdb_finish { } {
     gdb_exit;
 }