]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb/testsuite/
authorDaniel Jacobowitz <drow@false.org>
Fri, 15 Sep 2006 16:01:57 +0000 (16:01 +0000)
committerDaniel Jacobowitz <drow@false.org>
Fri, 15 Sep 2006 16:01:57 +0000 (16:01 +0000)
        * config/symbian.exp (infer_host_exec): Cope with MI.
        (mi_target_gdb_load): New.
        * lib/mi-support.exp: Use mi_target_gdb_load.

ChangeLog.csl
gdb/testsuite/config/symbian.exp
gdb/testsuite/lib/mi-support.exp

index 7f57122c6ddb89aeb82b6f2244889590741f0274..9f5ff16320548039081e26b229b0c057a4026215 100644 (file)
@@ -1,3 +1,10 @@
+2006-09-15  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       gdb/testsuite/
+       * config/symbian.exp (infer_host_exec): Cope with MI.
+       (mi_target_gdb_load): New.
+       * lib/mi-support.exp: Use mi_target_gdb_load.
+
 2006-09-15  Daniel Jacobowitz  <dan@codesourcery.com>
 
        gdb/testsuite/
index cb129c02bcc8e0700b98da4c09e99a75a13cf4b2..5c620a0f96ee900733d64defb6655e9222b67442 100644 (file)
@@ -191,6 +191,9 @@ proc gdb_target_symbian {} {
 }
 
 proc infer_host_exec { } {
+    global gdb_prompt
+    global mi_gdb_prompt
+
     set host_exec ""
 
     send_gdb "info files\n"
@@ -204,6 +207,7 @@ proc infer_host_exec { } {
            exp_continue
        }
        -re "$gdb_prompt $" { }
+       -re "$mi_gdb_prompt$" { }
     }
 
     return $host_exec
@@ -245,3 +249,47 @@ proc gdb_load { arg } {
        set exec_downloaded 1
     }
 }
+
+proc mi_target_gdb_load { arg } {
+    global exec_downloaded
+    global saved_host_exec
+
+    set board_exec [target_info exec_file]
+
+    if { [target_info exists baudrate] } {
+       mi_gdb_test "-gdb-set remotebaud [target_info baudrate]" "" ""
+    }
+
+    if { [mi_gdb_target_cmd "extended-remote" "[target_info netport]"] != 0 } {
+       return -1
+    }
+
+    # Kill if something is running, but prevent a failure if nothing is.
+    set none_re "&\"The program is not being run.\\\\n\"\[\r\n\]+"
+    mi_gdb_test "kill" "&\"kill\\\\n\"\[\r\n\]+($none_re)?\\^done" ""
+
+    set quoted_board_exec [string map {\\ \\\\} $board_exec]
+    mi_gdb_test "-gdb-set remote exec-file \"$quoted_board_exec\"" "" ""
+
+    # If we weren't passed an explicit binary, try to reuse the current
+    # one.  If we were, be sure to redownload it.
+
+    if { $arg == "" && $saved_host_exec == "" } {
+       set saved_host_exec [infer_host_exec]
+    } elseif { $arg != "" } {
+        set saved_host_exec $arg
+        if [info exists exec_downloaded] { unset exec_downloaded }
+    }
+
+    if { ! [info exists exec_downloaded] } {
+       global timeout
+       set prev_timeout $timeout
+       set timeout 60
+       mi_gdb_test "remote-download ${saved_host_exec}.exe $quoted_board_exec" "" ""
+       set timeout $prev_timeout
+
+       set exec_downloaded 1
+    }
+
+    return 0
+}
index fa99c53f255ce16969e9543a748328cfb4dc7ca7..d0a2156f153a1746eb37b2af234dc993b954e010 100644 (file)
@@ -470,7 +470,9 @@ proc mi_gdb_load { arg } {
     }
 
     # ``load''
-    if { [info procs gdbserver_gdb_load] != "" } {
+    if { [info procs mi_target_gdb_load] != "" } {
+       return [mi_target_gdb_load $arg]
+    } elseif { [info procs gdbserver_gdb_load] != "" } {
        global last_mi_gdb_file
        global last_mi_remote_file