This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA] testsuite: Fix rerun_to_main to allow restarting
- From: Corinna Vinschen <vinschen at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Sat, 14 Sep 2002 11:51:39 +0200
- Subject: [RFA] testsuite: Fix rerun_to_main to allow restarting
- Reply-to: gdb-patches at sources dot redhat dot com
Hi,
the following patch fixes an error in the testsuite lib. In lib/gdb.exp,
the proc rerun_to_main() doesn't take into account, that some targets
never actually exit, but instead are programatically trapped in some
_exit function.
This means that rerun_to_main() must be able to manage the situation
that gdb not just reruns, but first asks
The program being debugged has been started already.
Start it from the beginning? (y or n)
The following patch allows exactly that.
As a side effect, this eliminates the superfluous and identical
implementation of rerun_to_main() in gdb.base/ena-dis-br.exp.
Corinna
* lib/gdb.exp (rerun_to_main): Allow restarting application.
* gdb.base/ena-dis-br.exp (rerun_to_main): Eliminate.
Index: lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.26
diff -u -p -r1.26 gdb.exp
--- lib/gdb.exp 13 Sep 2002 17:20:11 -0000 1.26
+++ lib/gdb.exp 14 Sep 2002 09:44:44 -0000
@@ -1685,6 +1685,10 @@ proc rerun_to_main {} {
} else {
send_gdb "run\n"
gdb_expect {
+ -re "The program .* has been started already.*y or n. $" {
+ send_gdb "y\n"
+ exp_continue
+ }
-re "Starting program.*$gdb_prompt $"\
{pass "rerun to main" ; return 0}
-re "$gdb_prompt $"\
Index: gdb.base/ena-dis-br.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/ena-dis-br.exp,v
retrieving revision 1.2
diff -u -p -r1.2 ena-dis-br.exp
--- gdb.base/ena-dis-br.exp 6 Mar 2001 08:21:50 -0000 1.2
+++ gdb.base/ena-dis-br.exp 14 Sep 2002 09:44:44 -0000
@@ -38,30 +38,6 @@ if { [gdb_compile "${srcdir}/${subdir}/
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}
-proc rerun_to_main {} {
- global gdb_prompt
-
- if [target_info exists use_gdb_stub] {
- gdb_run_cmd
- gdb_expect {
- -re ".*Breakpoint .*main .*$gdb_prompt $"\
- {pass "rerun to main" ; return 0}
- -re "$gdb_prompt $"\
- {fail "rerun to main" ; return 0}
- timeout {fail "(timeout) rerun to main" ; return 0}
- }
- } else {
- send_gdb "run\n"
- gdb_expect {
- -re "Starting program.*$gdb_prompt $"\
- {pass "rerun to main" ; return 0}
- -re "$gdb_prompt $"\
- {fail "rerun to main" ; return 0}
- timeout {fail "(timeout) rerun to main" ; return 0}
- }
- }
-}
-
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
--
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.
mailto:vinschen@redhat.com