This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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)"
 	}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]