aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2011-12-13 17:22:11 +0000
committerPedro Alves <palves@redhat.com>2011-12-13 17:22:11 +0000
commit924437bc13e073e7d2b1e705dd4fb60001c1d49b (patch)
tree98afe2076bbbf0100b66e0cc57234e3127a62219 /gdb/testsuite/lib
parent6210a125f8517756c18bf50cd313c39d9487f184 (diff)
downloadgdb-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.exp118
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.