public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Carl Love <cel@us.ibm.com>
To: Andrew Burgess <aburgess@redhat.com>,
	Carl Love via Gdb-patches <gdb-patches@sourceware.org>,
	will schmidt <will_schmidt@vnet.ibm.com>,
	Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Subject: RE: [PATCH] Fix for gdb.base/break-idempotent.exp
Date: Mon, 27 Jun 2022 08:14:05 -0700	[thread overview]
Message-ID: <3f116734745ecd168d45584c0686b0eca3406eb4.camel@us.ibm.com> (raw)
In-Reply-To: <87letidy26.fsf@redhat.com>

Andrew:

Thanks for looking at the patch.  I am fine with you using your patch
and merging in anything from mine that is useful.  Thanks for sharing
you insight on the issues.  Thanks for the help in getting this fixed.

Take care.

                  Carl 

On Mon, 2022-06-27 at 14:40 +0100, Andrew Burgess wrote:
> Hi Carl,
> 
> First, an apology, I posted this patch:
> 
>   
> https://sourceware.org/pipermail/gdb-patches/2022-June/190257.html
>  
> 
> without first checking the mailing list, so I missed that you had
> already posted this.
> 
> You'll see that our fixes are pretty similar.  Given you posted this
> first, I'm happy for you to merge your patch, however, I do have some
> feedback...
> 
> Carl Love via Gdb-patches <gdb-patches@sourceware.org> writes:
> 
> > GDB maintainers:
> > 
> > The gdb.base/break-idempotent.exp test generates errors trying to
> > set
> > and remove breakpoints.  The issue is gdb is trying to set and
> > remove
> > breakpoints in skip_hw_watchpoint_tests not in break-idempotent.
> 
> I'm not sure I agree with this.  What I saw was problems when
> delete_breakpoints was called from break-idempotent.exp AFTER the
> skip_hw_watchpoint_tests call has caused GDB to exit.
> 
> >                                                                   T
> > he
> > issue is the skip_hw_watchpoint_test restarts gdb on the test hw
> > watchpoint test binary after gdb has been started for the break-
> > idempotent.exp test messing up the test.
> 
> It's the fact that GDB is exited at the end of has_hw_wp_support that
> causes the immediate problem.  Of couse, if we changed
> has_hw_wp_support
> so that GDB was left running then the restart would become the
> problem...
> 
> > This patch moves the check for hardware breakpoints before running
> > the
> > break-idempotent tests.  The move also improves the performance as
> > the
> > skip_hw_watchpoint_test only needs to be run once rather for each
> > test
> > case.
> 
> The has_hw_wp_support check is cached, so there's no (significant)
> performance improvement; has_hw_wp_support is only ever called once.
> The key to the fix is thta skip_hw_watchpoint_tests, and hence
> has_hw_wp_support is now called before GDB is started as part of the
> main test.
> 
> > The patch has been tested on Power 10 and fixes the failures seen
> > on
> > PowerPC.
> > 
> > Please let me know if this patch is acceptable for mainline.
> >                 Carl Love
> > 
> > 
> > -------------------------------------------------
> > Fix for gdb.base/break-idempotent.exp
> > 
> > ---
> >  gdb/testsuite/gdb.base/break-idempotent.exp | 12 +++++++++++-
> >  1 file changed, 11 insertions(+), 1 deletion(-)
> > 
> > diff --git a/gdb/testsuite/gdb.base/break-idempotent.exp
> > b/gdb/testsuite/gdb.base/break-idempotent.exp
> > index 29002f103a8..38b7632a7fc 100644
> > --- a/gdb/testsuite/gdb.base/break-idempotent.exp
> > +++ b/gdb/testsuite/gdb.base/break-idempotent.exp
> > @@ -145,6 +145,16 @@ proc test_break { always_inserted
> > break_command } {
> >      }
> >  }
> >  
> > +# The skip_hw_watchpoint_tests generates a small test source file
> > to test if HW
> > +# watchpoints are supported.  Do not want the compile and test for
> > the skip
> > +# hw watchpoint to restart gdb after the break-idempotemt test has
> > is started
> > +# on gdb.  Do the skip_hw_watchpoint_tests first.
> 
> How about this updated comment?
> 
>   # The skip_hw_watchpoint_tests starts GDB on a small test program
> to
>   # check if HW watchpoints are supported.  We do not want to restart
>   # GDB after this test script has itself started GDB, so call
>   # skip_hw_watchpoint_tests first.
> 
> > +if {[skip_hw_watchpoint_tests]} {
> > +    set skip_hw_wp 1
> > +} else {
> > +    set skip_hw_wp 0
> > +}
> 
> In my patch I wrote something similar, but, mentioned that
> skip_hw_watchpoint_tests caches its result, so just called
> skip_hw_watchpoint_tests without changing anything else.
> 
> If you prefer your version, then that's fine, but please use
> true/false
> instead of 1/0 when setting skip_hw_wp.
> 
> Thanks,
> Andrew
> 
> > +
> >  # The testcase uses the "file" command to force breakpoint re-set
> > in
> >  # GDB.  Test both with and without PIE, as GDB used to mishandle
> >  # breakpoint re-set when reloading PIEs.
> > @@ -174,7 +184,7 @@ foreach_with_prefix pie { "nopie" "pie" } {
> >  	    test_break $always_inserted "hbreak"
> >  	}
> >  
> > -	if {![skip_hw_watchpoint_tests]} {
> > +	if {!$skip_hw_wp} {
> >  	    test_break $always_inserted "watch"
> >  	}
> >  
> > -- 
> > 2.31.1


  reply	other threads:[~2022-06-27 15:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-14 22:38 Carl Love
2022-06-22 15:11 ` Carl Love
2022-06-27 13:40 ` Andrew Burgess
2022-06-27 15:14   ` Carl Love [this message]
2022-06-29  9:58     ` Andrew Burgess
2022-06-29 15:34       ` Carl Love

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=3f116734745ecd168d45584c0686b0eca3406eb4.camel@us.ibm.com \
    --to=cel@us.ibm.com \
    --cc=Ulrich.Weigand@de.ibm.com \
    --cc=aburgess@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=will_schmidt@vnet.ibm.com \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).