From 120edc2f7c086beeceb606b498a62fd0b9394a4b Mon Sep 17 00:00:00 2001 From: Kung Hsu Date: Wed, 22 Mar 1995 01:11:34 +0000 Subject: [PATCH] * lib/gdb.exp: add proc runto_main, for targets that use stubs, this will not runto main but do a 'step' to step out of breakpoint(). --- gdb/testsuite/lib/gdb.exp | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index b010303194b..2ea53e7ec4b 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -43,6 +43,17 @@ if ![info exists prompt] then { set prompt "\[(\]gdb\[)\]" } +global usestubs +if [istarget "sparclite-*-*"] then { + set usestubs 1 +} else { + set usestubs 0 +} + +if ![info exists noargs] then { + set noargs 0 +} + # # gdb_version -- extract and print the version number of GDB # @@ -190,6 +201,42 @@ proc runto { function } { } } +# +# runto_main -- ask gdb to run and untill hit break point at main. +# if it uses stubs, assuming we hit breakpoint() and just +# step out of the function. +# +proc runto_main {} { + global prompt + global decimal + global usestubs + + if $usestubs==0 { + runto main + return 1 + } + + send "delete\n" + expect { + -re "delete.*Delete all breakpoints.*y or n. $" { + send "y\n" + expect { + -re "$prompt $" {} + timeout { fail "deleting breakpoints (timeout)" ; return 0 } + } + } + -re ".*$prompt $" {} + timeout { fail "deleting breakpoints (timeout)" ; return 0 } + } + + send "step\n" + # if use stubs step out of the breakpoint() function. + expect { + -re "* at .*$prompt $" {} + timeout { fail "single step at breakpoint() (timeout)" ; return 0 } + } +} + # # gdb_test -- send a command to gdb and test the result. # Takes three parameters. -- 2.30.2