1 # Copyright
1988, 1990, 1991, 1992, 1995, 1997
2 # Free Software Foundation
, Inc.
4 # This
program is free software
; you can redistribute it and
/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation
; either version
2 of the License
, or
7 #
(at your option
) any later version.
9 # This
program is distributed in the hope that it will be useful
,
10 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License
for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this
program; if not
, write to the Free Software
16 # Foundation
, Inc.
, 59 Temple Place
- Suite
330, Boston
, MA
02111-1307, USA.
18 # This file was written by Rob Savoye.
(rob@cygnus.com
)
21 #
load support libraries
27 set gdb_prompt
"\\(vxgdb\\)"
30 # gdb_version
-- extract and print the version number of gcc
37 # gdb_load
-- load a file into the debugger.
38 # We have to stop and start gdb each time we
do this
, because when
39 # vxgdb loads two files in a
row, the symbols in the first file loaded
40 # take precedence. Returns
-1 on error
, else 0.
42 proc gdb_load
{ arg } {
45 if { [remote_ld target $
arg] != 0 } {
46 perror
"Couldn't load $arg"
50 return [gdb_file_cmd $
arg]
54 # gdb_start
-- start gdb running
62 #
get a connection to the board
63 for { set x
0; } { $x
< 3 } { incr x
} {
64 set shell_id
[remote_open target
]
65 if { $shell_id
> 0 } {
66 verbose
"Spawn id for remote shell is $shell_id"
69 verbose
"Timeout is now $timeout seconds" 2
71 set state
[spawn_vxgdb
];
72 if { $state
== "pass" } {
75 if { $state
== "fail" } {
83 proc spawn_vxgdb
{ } {
88 #
set the default arguments to
"main", so that "run" with no
89 # arguments will work correctly.
90 send_gdb
"set args main\n"
91 gdb_expect
-re
".*$gdb_prompt $" {}
93 verbose
"Setting up target, Please wait..."
94 #
set targets hostname
95 send_gdb
"target vxworks [target_info hostname]\n"
97 verbose
"Timeout is now $timeout seconds" 2
99 -re
"Done\..*$gdb_prompt $" {
100 verbose
"Set target to [target_info hostname]" 1
104 -re
"net_connect: RPC: (Program not registered|.*Timed out).*$" {
105 warning
"Couldn't set GDB to target [target_info netport]."
108 warning
"Couldn't set target for vxworks."
116 catch default_gdb_exit
120 #
"<return>" { send "\n"; perror "Window too small." }
121 #
-re
"\(y or n\) " { send "n\n"; perror "Got interactive prompt." }
122 # buffer_full
{ perror
"internal buffer is full." }
123 # eof
{ perror
"eof -- pty is hosed." }
124 # timeout
{ perror
"timeout." }
125 #
"virtual memory exhausted" { perror "virtual memory exhausted." }
126 #
"Undefined command" { perror "send string probably wrong." }