This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
mi-until.exp failures
- From: Paul Brook <paul at nowt dot org>
- To: gdb-patches at sourceware dot org
- Date: Fri, 3 Mar 2006 15:03:50 +0000
- Subject: mi-until.exp failures
I'm seeing the following failures on arm-none-eabi with a gcc4.x compiler:
FAIL: gdb.mi/mi-until.exp: until after while loop (timeout)
FAIL: gdb.mi/mi2-until.exp: until after while loop (timeout)
Turns out that this the "until" command actuig in unexpected ways, as
described in this thread:
http://sources.redhat.com/ml/gdb/2005-02/msg00151.html
AFAICS there's not been any real consensus whether this is a bug or a feature.
I've had a quick look at making the command work purely on source lines,
and concluded I don't have the time/inclination to make it work. I just want
to squish the unexpected testsuite failure.
I've created two patches to that end:
a) Decide this is a feature. Tweak the testcase to allow the strange behavior
and pass.
b) Decide this is a bug. I will file a bug and kfail the testcase.
Ok? PASS or KFAIL?
Paul
2006-03-03 Paul Brook <paul@codesourcery.com>
* gdb.mi/mi-until.exp: Allow until command stopping at top of loop.
* gdb.mi/mi2-until.exp: Ditto.
Index: testsuite/gdb.mi/mi-until.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-until.exp,v
retrieving revision 1.9
diff -u -p -r1.9 mi-until.exp
--- testsuite/gdb.mi/mi-until.exp 18 May 2005 03:41:59 -0000 1.9
+++ testsuite/gdb.mi/mi-until.exp 3 Mar 2006 14:44:38 -0000
@@ -78,7 +78,7 @@ proc test_until {} {
send_gdb "111-exec-until\n"
gdb_expect {
- -re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"12\"\}\r\n$mi_gdb_prompt$" {
+ -re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"(12|9)\"\}\r\n$mi_gdb_prompt$" {
pass "until after while loop"
}
timeout {
Index: testsuite/gdb.mi/mi2-until.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-until.exp,v
retrieving revision 1.3
diff -u -p -r1.3 mi2-until.exp
--- testsuite/gdb.mi/mi2-until.exp 18 May 2005 03:41:59 -0000 1.3
+++ testsuite/gdb.mi/mi2-until.exp 3 Mar 2006 14:44:38 -0000
@@ -79,7 +79,7 @@ proc test_until {} {
send_gdb "111-exec-until\n"
gdb_expect {
- -re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"12\"\}\r\n$mi_gdb_prompt$" {
+ -re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"(12|9)\"\}\r\n$mi_gdb_prompt$" {
pass "until after while loop"
}
timeout {
2006-03-03 Paul Brook <paul@codesourcery.com>
* gdb.mi/mi-until.exp: kfail broken until command.
* gdb.mi/mi2-until.exp: Ditto.
Index: gdb/testsuite/gdb.mi/mi-until.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-until.exp,v
retrieving revision 1.9
diff -u -p -r1.9 mi-until.exp
--- gdb/testsuite/gdb.mi/mi-until.exp 18 May 2005 03:41:59 -0000 1.9
+++ gdb/testsuite/gdb.mi/mi-until.exp 3 Mar 2006 14:48:00 -0000
@@ -81,6 +81,9 @@ proc test_until {} {
-re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"12\"\}\r\n$mi_gdb_prompt$" {
pass "until after while loop"
}
+ -re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"9\"\}\r\n$mi_gdb_prompt$" {
+ kfail gdb/xxx "until after while loop (went backwards)"
+ }
timeout {
fail "until after while loop (timeout)"
}
Index: gdb/testsuite/gdb.mi/mi2-until.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-until.exp,v
retrieving revision 1.3
diff -u -p -r1.3 mi2-until.exp
--- gdb/testsuite/gdb.mi/mi2-until.exp 18 May 2005 03:41:59 -0000 1.3
+++ gdb/testsuite/gdb.mi/mi2-until.exp 3 Mar 2006 14:48:00 -0000
@@ -82,6 +82,9 @@ proc test_until {} {
-re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"12\"\}\r\n$mi_gdb_prompt$" {
pass "until after while loop"
}
+ -re "111\\^running\r\n${mi_gdb_prompt}111\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"foo\",args=\\\[\\\],file=\".*until.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"9\"\}\r\n$mi_gdb_prompt$" {
+ kfail gdb/xxx "until after while loop (went backwards)"
+ }
timeout {
fail "until after while loop (timeout)"
}