This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFC: Fix basicclass.exp for sim targets
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Sat, 7 Feb 2004 22:57:05 -0500
- Subject: Re: RFC: Fix basicclass.exp for sim targets
- References: <20030828193627.GA27478@nevyn.them.org>
On Thu, Aug 28, 2003 at 03:36:27PM -0400, Daniel Jacobowitz wrote:
> This is an RFC because it also involves correcting basic-sim.exp in DejaGNU;
> so I want to get opinions before I do that.
>
> The problem is that you can't rerun a binary on the simulator, in our test
> harness. We don't have anything that can issue the necessary "load"
> command. We have a matching hook for remote stubs and gdbserver, however:
> gdb,do_reload_on_run.
>
> This patch teaches the sim target about this, and supports it for non-remote
> targets. Comments?
No one commented, and the DejaGNU bit was accepted; so six months later
I'm checking this in.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
2004-02-07 Daniel Jacobowitz <drow@mvista.com>
* config/sim.exp (gdb_load): Handle $arg == "".
* lib/gdb.exp (gdb_run_cmd): Honor gdb,do_reload_on_run.
* gdb.objc/basicclass.exp: Use gdb_run_cmd.
Index: testsuite//config/sim.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/config/sim.exp,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 sim.exp
--- testsuite//config/sim.exp 16 Apr 1999 01:34:29 -0000 1.1.1.1
+++ testsuite//config/sim.exp 8 Feb 2004 03:55:42 -0000
@@ -1,5 +1,5 @@
# Test Framework Driver for GDB driving a builtin simulator
-# Copyright 1994, 1997, 1998 Free Software Foundation, Inc.
+# Copyright 1994, 1997, 1998, 2004 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -55,7 +55,9 @@ proc gdb_load { arg } {
global GDB
global gdb_prompt
- if [gdb_file_cmd $arg] then { return -1 }
+ if { $arg != "" } {
+ if [gdb_file_cmd $arg] then { return -1 }
+ }
gdb_target_sim
Index: testsuite//gdb.objc/basicclass.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.objc/basicclass.exp,v
retrieving revision 1.3
diff -u -p -r1.3 basicclass.exp
--- testsuite//gdb.objc/basicclass.exp 6 Jul 2003 22:27:34 -0000 1.3
+++ testsuite//gdb.objc/basicclass.exp 8 Feb 2004 03:55:42 -0000
@@ -1,4 +1,4 @@
-# Copyright 2003 Free Software Foundation, Inc.
+# Copyright 2003, 2004 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -125,13 +125,9 @@ gdb_test continue \
#
# Test resetting breakpoints when re-running program
#
-send_gdb "run\n"
+gdb_run_cmd
gdb_expect {
- -re "The program .* has been started already.*y or n. $" {
- send_gdb "y\n"
- exp_continue
- }
- -re "Starting program.*Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:.*$gdb_prompt $"\
+ -re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:.*$gdb_prompt $"\
{ pass "resetting breakpoints when rerunning" }
-re ".*$gdb_prompt $" { fail "resetting breakpoints when rerunning" }
timeout { fail "resetting breakpoints when rerunning" }
Index: testsuite//lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.45
diff -u -p -r1.45 gdb.exp
--- testsuite//lib/gdb.exp 2 Feb 2004 21:14:33 -0000 1.45
+++ testsuite//lib/gdb.exp 8 Feb 2004 03:55:42 -0000
@@ -248,6 +248,12 @@ proc gdb_run_cmd {args} {
}
return
}
+
+ if [target_info exists gdb,do_reload_on_run] {
+ if { [gdb_load ""] < 0 } {
+ return;
+ }
+ }
send_gdb "run $args\n"
# This doesn't work quite right yet.
gdb_expect 60 {