From: Daniel Jacobowitz Date: Fri, 15 Sep 2006 16:01:57 +0000 (+0000) Subject: gdb/testsuite/ X-Git-Tag: gdb-csl-symbian-6_4_50_20060226-12~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=558b9c22c561178c26e30f578bc0cbe03cf9b18b;p=thirdparty%2Fbinutils-gdb.git 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. --- diff --git a/ChangeLog.csl b/ChangeLog.csl index 7f57122c6dd..9f5ff163205 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,3 +1,10 @@ +2006-09-15 Daniel Jacobowitz + + 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 gdb/testsuite/ diff --git a/gdb/testsuite/config/symbian.exp b/gdb/testsuite/config/symbian.exp index cb129c02bcc..5c620a0f96e 100644 --- a/gdb/testsuite/config/symbian.exp +++ b/gdb/testsuite/config/symbian.exp @@ -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 +} diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index fa99c53f255..d0a2156f153 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -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