diff options
author | Pedro Alves <palves@redhat.com> | 2011-12-13 17:22:11 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-12-13 17:22:11 +0000 |
commit | 924437bc13e073e7d2b1e705dd4fb60001c1d49b (patch) | |
tree | 98afe2076bbbf0100b66e0cc57234e3127a62219 /gdb/testsuite/lib | |
parent | 6210a125f8517756c18bf50cd313c39d9487f184 (diff) | |
download | gdb-924437bc13e073e7d2b1e705dd4fb60001c1d49b.zip gdb-924437bc13e073e7d2b1e705dd4fb60001c1d49b.tar.gz gdb-924437bc13e073e7d2b1e705dd4fb60001c1d49b.tar.bz2 |
gdb/doc/
2011-12-13 Pedro Alves <pedro@codesourcery.com>
* gdb.texinfo (Implementing a Remote Stub): Explain that you
should transfer control to the stub in the startup code instead of
in main. Mention the need to get past the initial breakpoint.
gdb/testsuite/
2011-12-13 Pedro Alves <pedro@codesourcery.com>
Doug Evans <dje@google.com>
* lib/gdb.exp (gdb_run_cmd, runto_main, gdb_compile)
(clean_restart): Remove references to the gdb_stub target board
variable.
(gdb_step_for_stub): Delete.
* gdb.base/annota1.exp: Remove all references to [target_info
exists gdb_stub], gdb_step_for_stub and usestubs.
* gdb.base/annota3.exp: Ditto.
* gdb.base/async.exp: Ditto.
* gdb.base/break.exp: Ditto.
* gdb.base/code-expr.exp: Ditto.
* gdb.base/commands.exp: Ditto.
* gdb.base/completion.exp: Ditto.
* gdb.base/condbreak.exp: Ditto.
* gdb.base/consecutive.exp: Ditto.
* gdb.base/cvexpr.exp: Ditto.
* gdb.base/define.exp: Ditto.
* gdb.base/display.exp: Ditto.
* gdb.base/ena-dis-br.exp: Ditto.
* gdb.base/environ.exp: Ditto.
* gdb.base/gnu-ifunc.exp: Ditto.
* gdb.base/maint.exp: Ditto.
* gdb.base/pending.exp: Ditto.
* gdb.base/sect-cmd.exp: Ditto.
* gdb.base/sepdebug.exp: Ditto.
* gdb.base/unload.exp: Ditto.
* gdb.base/watchpoint-solib.exp: Ditto.
* gdb.cp/annota2.exp: Ditto.
* gdb.cp/annota3.exp: Ditto.
* gdb.dwarf2/dw2-inline-param.exp: Ditto.
* gdb.hp/gdb.compat/xdb1.exp: Ditto.
* gdb.mi/mi-pending.exp: Ditto.
* gdb.trace/circ.exp: Ditto.
* gdb.cp/ovldbreak.exp: Ditto. Adjust expected line numbers.
* gdb.base/list.exp: Ditto.
* gdb.base/all-types.c: Remove all calls to set_debug_traps and
breakpoint function and all references to the usestubs macro.
* gdb.base/exprs.c: Ditto.
* gdb.base/freebpcmd.c: Ditto.
* gdb.base/bitfields.c: Ditto.
* gdb.base/bitfields2.c: Ditto.
* gdb.base/break.c: Ditto.
* gdb.base/call-sc.c: Ditto.
* gdb.base/call-signals.c: Ditto.
* gdb.base/callfuncs.c: Ditto.
* gdb.base/charset.c: Ditto.
* gdb.base/consecutive.c: Ditto.
* gdb.base/constvars.c: Ditto.
* gdb.base/funcargs.c: Ditto.
* gdb.base/int-type.c: Ditto.
* gdb.base/interrupt.c: Ditto.
* gdb.base/langs0.c: Ditto.
* gdb.base/list0.c: Ditto.
* gdb.base/mips_pro.c: Ditto.
* gdb.base/miscexprs.c: Ditto.
* gdb.base/nodebug.c: Ditto.
* gdb.base/opaque0.c: Ditto.
* gdb.base/pointers.c: Ditto.
* gdb.base/printcmds.c: Ditto.
* gdb.base/ptype.c: Ditto.
* gdb.base/recurse.c: Ditto.
* gdb.base/reread1.c: Ditto.
* gdb.base/reread2.c: Ditto.
* gdb.base/restore.c: Ditto.
* gdb.base/return.c: Ditto.
* gdb.base/run.c: Ditto.
* gdb.base/scope0.c: Ditto.
* gdb.base/sepdebug.c: Ditto.
* gdb.base/setshow.c: Ditto.
* gdb.base/setvar.c: Ditto.
* gdb.base/sigall.c: Ditto.
* gdb.base/signals.c: Ditto.
* gdb.base/structs.c: Ditto.
* gdb.base/structs2.c: Ditto.
* gdb.base/testenv.c: Ditto.
* gdb.base/twice.c: Ditto.
* gdb.base/unwindonsignal.c: Ditto.
* gdb.base/watchpoint.c: Ditto.
* gdb.base/watchpoints.c: Ditto.
* gdb.base/whatis.c: Ditto.
* gdb.cp/classes.cc: Ditto.
* gdb.cp/cplusfuncs.cc: Ditto.
* gdb.cp/derivation.cc: Ditto.
* gdb.cp/formatted-ref.cc: Ditto.
* gdb.cp/misc.cc: Ditto.
* gdb.cp/overload.cc: Ditto.
* gdb.cp/ovldbreak.cc: Ditto.
* gdb.cp/ref-params.cc: Ditto.
* gdb.cp/ref-types.cc: Ditto.
* gdb.cp/templates.cc: Ditto.
* gdb.cp/virtfunc.cc: Ditto.
* gdb.hp/gdb.aCC/run.c: Ditto.
* gdb.hp/gdb.base-hp/callfwmall.c: Ditto.
* gdb.hp/gdb.compat/xdb0.c: Ditto.
* gdb.reverse/consecutive-reverse.c: Ditto.
* gdb.reverse/sigall-reverse.c: Ditto.
* gdb.reverse/until-reverse.c: Ditto.
* gdb.reverse/watch-reverse.c: Ditto.
* gdb.trace/actions.c: Ditto.
* gdb.trace/circ.c: Ditto.
* gdb.trace/collection.c: Ditto.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 118 |
1 files changed, 1 insertions, 117 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 1a9270d..633dc26 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -268,13 +268,6 @@ proc gdb_run_cmd {args} { } } } - if [target_info exists gdb_stub] { - gdb_expect 60 { - -re "$gdb_prompt $" { - send_gdb "continue\n" - } - } - } return } @@ -456,26 +449,12 @@ proc runto { function args } { } # Ask gdb to run until we hit a breakpoint at main. -# The case where the target uses stubs has to be handled -# specially--if it uses stubs, assuming we hit -# breakpoint() and just step out of the function. # # N.B. This function deletes all existing breakpoints. # If you don't want that, use gdb_start_cmd. proc runto_main { } { - global gdb_prompt - global decimal - - if ![target_info exists gdb_stub] { - return [runto main] - } - - delete_breakpoints - - gdb_step_for_stub; - - return 1 + return [runto main] } ### Continue, and expect to hit a breakpoint. @@ -2294,14 +2273,8 @@ proc gdb_compile {source dest type options} { } set options $new_options - if [target_info exists gdb_stub] { - set options2 { "additional_flags=-Dusestubs" } - lappend options "libs=[target_info gdb_stub]"; - set options [concat $options2 $options] - } if [target_info exists is_vxworks] { set options2 { "additional_flags=-Dvxworks" } - lappend options "libs=[target_info gdb_stub]"; set options [concat $options2 $options] } if [info exists GDB_TESTCASE_OPTIONS] { @@ -3166,91 +3139,6 @@ proc setup_kfail_for_target { PR target } { } } -# Test programs for embedded (often "bare board") systems sometimes use a -# "stub" either embedded in the test program itself or in the boot rom. -# The job of the stub is to implement the remote protocol to communicate -# with gdb and control the inferior. To initiate the remote protocol -# session with gdb the stub needs to be given control by the inferior. -# They do this by calling a function that typically triggers a trap -# from main that transfers control to the stub. -# The purpose of this function, gdb_step_for_stub, is to step out of -# that function ("breakpoint" in the example below) and back into main. -# -# Example: -# -# int -# main () -# { -# #ifdef usestubs -# set_debug_traps (); /* install trap handlers for stub */ -# breakpoint (); /* trigger a trap to give the stub control */ -# #endif -# /* test program begins here */ -# } -# -# Note that one consequence of this design is that a breakpoint on "main" -# does not Just Work (because if the target could stop there you still have -# to step past the calls to set_debug_traps,breakpoint). - -proc gdb_step_for_stub { } { - global gdb_prompt; - - if ![target_info exists gdb,use_breakpoint_for_stub] { - if [target_info exists gdb_stub_step_command] { - set command [target_info gdb_stub_step_command]; - } else { - set command "step"; - } - send_gdb "${command}\n"; - set tries 0; - gdb_expect 60 { - -re "(main.* at |.*in .*start).*$gdb_prompt" { - return; - } - -re ".*$gdb_prompt" { - incr tries; - if { $tries == 5 } { - fail "stepping out of breakpoint function"; - return; - } - send_gdb "${command}\n"; - exp_continue; - } - default { - fail "stepping out of breakpoint function"; - return; - } - } - } - send_gdb "where\n"; - gdb_expect { - -re "main\[^\r\n\]*at \(\[^:]+\):\(\[0-9\]+\)" { - set file $expect_out(1,string); - set linenum [expr $expect_out(2,string) + 1]; - set breakplace "${file}:${linenum}"; - } - default {} - } - send_gdb "break ${breakplace}\n"; - gdb_expect 60 { - -re "Breakpoint (\[0-9\]+) at.*$gdb_prompt" { - set breakpoint $expect_out(1,string); - } - -re "Breakpoint (\[0-9\]+): file.*$gdb_prompt" { - set breakpoint $expect_out(1,string); - } - default {} - } - send_gdb "continue\n"; - gdb_expect 60 { - -re "Breakpoint ${breakpoint},.*$gdb_prompt" { - gdb_test "delete $breakpoint" ".*" ""; - return; - } - default {} - } -} - # gdb_get_line_number TEXT [FILE] # # Search the source file FILE, and return the line number of the @@ -3709,10 +3597,6 @@ proc clean_restart { executable } { gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} - - if [target_info exists gdb_stub] { - gdb_step_for_stub; - } } # Prepares for testing, by calling build_executable, and then clean_restart. |