# Copyright (C) 1988, 1990, 1991, 1992 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 # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ # Please email any bugs, comments, and/or additions to this file to: # bug-gdb@prep.ai.mit.edu # This file was written by Rob Savoye. (rob@cygnus.com) load_lib gdb.exp # variables that need to set up # if ![info exists prompt] then { set prompt "\[(\]gdb\[)\]" } # some convenience abbreviations # if ![info exists hex] then { set hex "0x\[0-9A-Fa-f\]+" } if ![info exists decimal] then { set decimal "\[0-9\]+" } # # gdb_version -- extract and print the version number of gcc # proc gdb_version {} { default_gdb_version } # # gdb_unload -- unload a file if one is loaded # # # gdb_load -- load a file into the debugger. # return a -1 if anything goes wrong. # proc gdb_load { arg } { global verbose global loadpath global loadfile global GDB global prompt return [gdb_file_cmd $arg] } # # start gdb -- start gdb running # proc gdb_start {} { global verbose global GDB global GDBFLAGS global prompt global spawn_id global timeout verbose "Spawning $GDB $GDBFLAGS" set oldtimeout $timeout set timeout [expr "$timeout + 60"] if [ llength $GDBFLAGS ] then { if {[which $GDB] != 0} then { spawn $GDB $GDBFLAGS } else { perror "$GDB does not exist." exit 1 } } else { if {[which $GDB] != 0} then { spawn $GDB } else { perror "$GDB does not exist." exit 1 } } expect { -re ".*\r\n$prompt $" { verbose "GDB initialized for native mode" } -re "$prompt $" { perror "GDB never initialized." return -1 } timeout { perror "(timeout) GDB never initialized." return -1 } } set timeout $oldtimeout # force the height to "unlimited", so no pagers get used send "set height 0\n" expect { -re ".*$prompt $" { verbose "Setting height to 0." 2 } timeout { warning "Couldn't set the height to 0." } } # force the width to "unlimited", so no wraparound occurs send "set width 0\n" expect { -re ".*$prompt $" { verbose "Seting width to 0." 2 } timeout { warning "Couldn't set the width to 0." } } } proc gdb_exit { } { catch default_gdb_exit } set binpath /s1/users/rob/vxworks/bin/somewhere-bogus-that-needs-configuring set bin $GDB gdb_start