diff options
author | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:35:26 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:35:26 +0000 |
commit | c906108c21474dfb4ed285bcc0ac6fe02cd400cc (patch) | |
tree | a0015aa5cedc19ccbab307251353a41722a3ae13 /gdb/testsuite/config/netware.exp | |
parent | cd946cff9ede3f30935803403f06f6ed30cad136 (diff) | |
download | binutils-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.zip binutils-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.tar.gz binutils-c906108c21474dfb4ed285bcc0ac6fe02cd400cc.tar.bz2 |
Initial creation of sourceware repositorygdb-4_18-branchpoint
Diffstat (limited to 'gdb/testsuite/config/netware.exp')
-rw-r--r-- | gdb/testsuite/config/netware.exp | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/gdb/testsuite/config/netware.exp b/gdb/testsuite/config/netware.exp new file mode 100644 index 0000000..2538ccf --- /dev/null +++ b/gdb/testsuite/config/netware.exp @@ -0,0 +1,218 @@ +# Copyright (C) 1988, 1990, 1991, 1992, 1994, 1997 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +# This file was written by J.T. Conklin. (jtc@cygnus.com) + +load_lib gdb.exp +load_lib remote.exp + +global shell_id + +global LD +if ![info exists LD] then { + set LD [findfile "$base_dir/../../ld/ld.new"] +} + +global NLMCONV +if ![info exists NLMCONV] then { + set NLMCONV [findfile "$base_dir/../../binutils/nlmconv"] +} + +# +# 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 gdb_prompt + global LD + global NLMCONV + global errorCode + global shell_id + + # FIXME: this is wrong. + set targetname [target_info name]; + + set obj [file tail $arg] + set nlm "$obj.nlm" + set lnk "$obj.lnk" + + # build *.lnk file + set fd [open $lnk w] + puts $fd "description \"[file tail $nlm]\"" + puts $fd "screenname \"System Console\"" + puts $fd "module clib.nlm" + puts $fd "module mathlib.nlm" + puts $fd "stack 32768" +# puts $fd "stack 64512" + puts $fd "debug" + # FIXME: don't hardcode location of prelude.o + puts $fd "input /s1/cygnus/dejagnu/i386-netware/lib/prelude.o" + puts $fd "input $arg" + puts $fd "output $nlm" + close $fd + + # run nlmconv + verbose "Executing: $NLMCONV -l$LD -T$lnk" 1 + catch "exec $NLMCONV -l$LD -T$lnk" output + if ![string match "" $output] then { + verbose $output 1 + } + if ![string match "NONE" $errorCode] { + warning "Can't link $arg" + + return -1 + } + catch "exec rm -f $lnk" + + # download + verbose "Downloading $nlm" 1 + catch "exec cp $nlm /.NetWare/$targetname.nws/sys.nwv/tmp/x.nlm" output + if ![string match "" $output] then { + verbose $output 1 + return -1 + } + + gdb_file_cmd $nlm +} + +proc gdb_run_cmd { } { + global shell_id + global gdb_prompt + global timeout + + set connhost [target_info name]; + if [board_info $connhost exists serial] { + set serialport [board_info $connhost serial]; + } else { + set serialport [board_info $connhost netport]; + } + + if [board_info $connhost exists baud] { + set baud [board_info $connhost baud]; + } else { + set baud 9600; + } + # FIXME: This is wrong. + send "kill\n" + gdb_expect { + -re ".*Kill the program being debugged.*y or n. $" { + send "y\n" + exp_continue + } + -re ".*$gdb_prompt $" {} + } + + verbose "Starting GDB stub on [target_info name]" 1 + send -i $shell_id "load nlmstub BAUD=$baud x.nlm\r\n" + + send "set remotebaud $baud\n" + gdb_expect { + -re "$gdb_prompt" {} + timeout { + perror "Couldn't set remote baud rate" + return + } + } + + set otimeout $timeout + set timeout 60 + verbose "Timeout is now $timeout seconds" 2 + send "target remote $serialport\n" + gdb_expect { + -re "Couldn't establish connection to remote target" { + send "target remote $serialport\n" + exp_continue + } + -re "$gdb_prompt" {} + timeout { + set timeout $otimeout + verbose "Timeout restored to $timeout seconds" 2 + perror "Couldn't set remote target" + return + } + } + set timeout $otimeout + verbose "Timeout restored to $timeout seconds" 2 + + send "continue\n" + gdb_expect { + "Continuing.$" {} + } + + return +} + + + +# +# start the remote shell +# + +set shell_prompt "Password:" +set shell_id [remote_open target] + +if $shell_id<0 then { + warning "Couldn't connect to target" + return -1 +} + +if [string match "" $passwd] then { + stty -echo + send_user "Password: " + expect_user -re "(.*)\n" + send_user "\n" + set passwd "$expect_out(1,string)" + stty echo +} + +send -i $shell_id "$passwd\n" +gdb_expect { + -i $shell_id ":" { + verbose "Got termtype prompt" 0 + } + + -i $shell_id timeout { + warning "Connection timed out" + return -1 + } +} + + +# FIXME: this is wrong. +set shell_prompt "[string toupper [target_info name]]:" +send -i $shell_id "1\n" + +gdb_expect { + -i $shell_id -re "$shell_prompt" {} + -i $shell_id timeout { + warning "Connection timed out" + return -1 + } +} |