-# Copyright 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-# Free Software Foundation, Inc.
+# Copyright 2000-2013 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
return [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
}
-# Start and connect to a gdbserver in extended mode.
+# Start and connect to a gdbserver in extended mode. Note this frobs
+# $gdbserver_protocol, so should be used only from a board that
+# usually connects in target remote mode.
proc gdbserver_start_extended { } {
global gdbserver_protocol
global gdbserver_gdbport
global use_gdb_stub
set res [gdbserver_start "--multi" ""]
- set gdbserver_protocol "extended-[lindex $res 0]"
+ set gdbserver_protocol [lindex $res 0]
+ if { [string first "extended-" $gdbserver_protocol] != 0} {
+ set gdbserver_protocol "extended-$gdbserver_protocol"
+ }
set gdbserver_gdbport [lindex $res 1]
# Even if the board file is testing with target remote, our caller
return [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
}
+
+# Start and connect to a gdbserver in extended/multi mode. Unlike
+# gdbserver_start_extended, this does not frob $gdbserver_protocol.
+
+proc gdbserver_start_multi { } {
+ global gdbserver_protocol
+ global gdbserver_gdbport
+
+ set res [gdbserver_start "--multi" ""]
+ set gdbserver_protocol [lindex $res 0]
+ set gdbserver_gdbport [lindex $res 1]
+
+ return [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
+}
+
+# Start a gdbserver process in multi/extended mode, and have GDB
+# connect to it (MI version). Return 0 on success, or non-zero on
+# failure.
+
+proc mi_gdbserver_start_multi { } {
+ global gdbserver_protocol
+ global gdbserver_gdbport
+
+ set res [gdbserver_start "--multi" ""]
+ set gdbserver_protocol [lindex $res 0]
+ set gdbserver_gdbport [lindex $res 1]
+
+ return [mi_gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
+}