mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
* 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().
This commit is contained in:
parent
9cc2cd4f7a
commit
120edc2f7c
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user