Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Maciej W. Rozycki" <macro@mips.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: gdb-patches@sourceware.org, "Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: mi*-watch.exp: Test both hardware and software watchpoints
Date: Fri, 14 Sep 2007 15:28:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.61.0709141527320.23291@perivale.mips.com> (raw)
In-Reply-To: <20070914142430.GA28551@caradoc.them.org>

On Fri, 14 Sep 2007, Daniel Jacobowitz wrote:

> I don't think it's safe to extend the epilogue arbitrarily - we can't
> recognize the instruction because we have no way to query where the
> frame pointer is at this point.  We might extend it arbitrarily far
> backwards if we're not careful.

 Well, I would have thought the destruction of the frame pointer marks the 
beginning of the epilogue.  Though I can imagine an ABI relaxed enough to 
let the compiler shuffle instructions around while optimising so that some 
belonging to the body of a function actually arrive past the boundary.

> I don't intend to fix it right now, anyway.  And I really do not like
> leaving failing tests.  Every few years, I try to reduce the failures
> for a couple of platforms to zero.  I'm going to do it again after I
> finish with multi-threaded watchpoints (next week hopefully; patches
> coming this weekend).

 I guess they could act as incentive for platform maintainers. ;-)

> I think the right fix is going to have to involve GCC.  It should emit
> correct unwind info for the epilogue; even without also adding the
> epilogue markers to the line table, correct unwind info will solve
> this problem 99% of the time.

 Fair enough.

> > +    set old_prefix $pf_prefix
> > +    set pf_prefix "$pf_prefix $type: "
> 
> Is there a double space here?  IIUC pf_prefix will be something like
> "gdb.mi/mi-watch.exp: ".

 I would have thought so as well, but the sequence above actually places a 
single space character between the variables.  Perhaps it is another TCL 
feature -- I am not sure if I can be bothered to get to the bottom of it 
-- should I?

> Otherwise OK to commit.

 OK, here is an XFAIL patch.  Results for native i386-linux-gnu:

# of expected passes		26
# of expected failures		2

2007-09-14  Maciej W. Rozycki  <macro@mips.com>

	* gdb.mi/mi-watch.exp (test_watchpoint_all): Pass the watchpoint
	type down.
	(test_watchpoint_triggering): XFAIL the sw watchpoint scope
	test.
	* gdb.mi/mi2-watch.exp (test_watchpoint_all): Pass the
	watchpoint type down.
	(test_watchpoint_triggering): XFAIL the sw watchpoint scope
	test.

 It is not completely bullet-proof, like the whole set of changes anyway, 
as for platforms that do not support hw watchpoints at all the tests are 
run twice using sw watchpoints and do FAIL for the variation assumed to be 
hw.  It is not a regression though and a small waste of time only.  I can 
see whether determining if hw watchpoints are truly available is doable at 
some point, but I cannot promise any timeline at the moment.

 OK for this bit?

  Maciej

gdb-watch-scope-xfail.diff
Index: binutils-quilt/src/gdb/testsuite/gdb.mi/mi-watch.exp
===================================================================
--- binutils-quilt.orig/src/gdb/testsuite/gdb.mi/mi-watch.exp	2007-09-14 14:32:27.000000000 +0100
+++ binutils-quilt/src/gdb/testsuite/gdb.mi/mi-watch.exp	2007-09-14 16:04:14.000000000 +0100
@@ -41,7 +41,7 @@
      return -1
 }
 
-proc test_watchpoint_creation_and_listing {} {
+proc test_watchpoint_creation_and_listing {type} {
     global mi_gdb_prompt
     global srcfile
     global hex
@@ -65,7 +65,7 @@
 }
 
 # UNUSED at the time
-proc test_awatch_creation_and_listing {} {
+proc test_awatch_creation_and_listing {type} {
     global mi_gdb_prompt
     global srcfile
     global hex
@@ -92,7 +92,7 @@
 }
 
 # UNUSED at the time
-proc test_rwatch_creation_and_listing {} {
+proc test_rwatch_creation_and_listing {type} {
     global mi_gdb_prompt
     global srcfile
     global hex
@@ -118,7 +118,7 @@
 	    "delete read watchpoint"
 }
 
-proc test_watchpoint_triggering {} {
+proc test_watchpoint_triggering {type} {
     global mi_gdb_prompt
     global hex fullname_syntax srcfile
 
@@ -147,6 +147,9 @@
       timeout {fail "watchpoint trigger (timeout 1)"}
     }
 
+    if { $type == "sw" } {
+      setup_xfail *-*-*
+    }
     send_gdb "223-exec-continue\n"
     gdb_expect {
       -re "223\\^running\r\n$mi_gdb_prompt" {
@@ -161,6 +164,7 @@
       -re ".*$mi_gdb_prompt$" {fail "wp out of scope (1)"}
       timeout {fail "wp out of scope (timeout 1)"}
     }
+    clear_xfail *-*-*
 }
 
 proc test_watchpoint_all {type} {
@@ -177,10 +181,10 @@
     mi_gdb_load ${binfile}
 
     mi_runto callee4
-    test_watchpoint_creation_and_listing
-    #test_rwatch_creation_and_listing
-    #test_awatch_creation_and_listing
-    test_watchpoint_triggering
+    test_watchpoint_creation_and_listing $type
+    #test_rwatch_creation_and_listing $type
+    #test_awatch_creation_and_listing $type
+    test_watchpoint_triggering $type
 
     set pf_prefix $old_prefix
 }
Index: binutils-quilt/src/gdb/testsuite/gdb.mi/mi2-watch.exp
===================================================================
--- binutils-quilt.orig/src/gdb/testsuite/gdb.mi/mi2-watch.exp	2007-09-14 14:36:48.000000000 +0100
+++ binutils-quilt/src/gdb/testsuite/gdb.mi/mi2-watch.exp	2007-09-14 16:04:27.000000000 +0100
@@ -41,7 +41,7 @@
      return -1
 }
 
-proc test_watchpoint_creation_and_listing {} {
+proc test_watchpoint_creation_and_listing {type} {
     global mi_gdb_prompt
     global srcfile
     global hex
@@ -65,7 +65,7 @@
 }
 
 # UNUSED at the time
-proc test_awatch_creation_and_listing {} {
+proc test_awatch_creation_and_listing {type} {
     global mi_gdb_prompt
     global srcfile
     global hex
@@ -92,7 +92,7 @@
 }
 
 # UNUSED at the time
-proc test_rwatch_creation_and_listing {} {
+proc test_rwatch_creation_and_listing {type} {
     global mi_gdb_prompt
     global srcfile
     global hex
@@ -118,7 +118,7 @@
 	    "delete read watchpoint"
 }
 
-proc test_watchpoint_triggering {} {
+proc test_watchpoint_triggering {type} {
     global mi_gdb_prompt
     global hex
 
@@ -147,6 +147,9 @@
       timeout {fail "watchpoint trigger (timeout 1)"}
     }
 
+    if { $type == "sw" } {
+      setup_xfail *-*-*
+    }
     send_gdb "223-exec-continue\n"
     gdb_expect {
       -re "223\\^running\r\n$mi_gdb_prompt" {
@@ -161,6 +164,7 @@
       -re ".*$mi_gdb_prompt$" {fail "wp out of scope (1)"}
       timeout {fail "wp out of scope (timeout 1)"}
     }
+    clear_xfail *-*-*
 }
 
 proc test_watchpoint_all {type} {
@@ -177,10 +181,10 @@
     mi_gdb_load ${binfile}
 
     mi_runto callee4
-    test_watchpoint_creation_and_listing
-    #test_rwatch_creation_and_listing
-    #test_awatch_creation_and_listing
-    test_watchpoint_triggering
+    test_watchpoint_creation_and_listing $type
+    #test_rwatch_creation_and_listing $type
+    #test_awatch_creation_and_listing $type
+    test_watchpoint_triggering $type
 
     set pf_prefix $old_prefix
 }


  reply	other threads:[~2007-09-14 15:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-11 15:42 Maciej W. Rozycki
2007-09-11 16:19 ` Daniel Jacobowitz
2007-09-14 14:13   ` Maciej W. Rozycki
2007-09-14 14:24     ` Daniel Jacobowitz
2007-09-14 15:28       ` Maciej W. Rozycki [this message]
2007-09-14 15:40         ` Daniel Jacobowitz
2007-09-14 16:25           ` Maciej W. Rozycki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.61.0709141527320.23291@perivale.mips.com \
    --to=macro@mips.com \
    --cc=drow@false.org \
    --cc=gdb-patches@sourceware.org \
    --cc=macro@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox