From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13743 invoked by alias); 3 Jun 2014 13:08:51 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 13708 invoked by uid 89); 3 Jun 2014 13:08:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 03 Jun 2014 13:08:43 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s53D8dsA028036 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 3 Jun 2014 09:08:39 -0400 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s53D8c28012584; Tue, 3 Jun 2014 09:08:38 -0400 Message-ID: <538DC8D5.507@redhat.com> Date: Tue, 03 Jun 2014 13:08:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Joel Brobecker CC: gdb-patches@sourceware.org Subject: Re: [pushed] PR breakpoints/17000: user breakpoint not inserted if software-single-step at same location - another test References: <1401394280-14999-1-git-send-email-brobecker@adacore.com> <5387BFF0.6010208@redhat.com> <20140530122253.GC4289@adacore.com> <53887ED5.5050603@redhat.com> <20140530132659.GD4289@adacore.com> <20140530193549.GF4289@adacore.com> <538D05CC.8050608@redhat.com> <538D85A9.5010004@redhat.com> <538DB728.7080702@redhat.com> In-Reply-To: <538DB728.7080702@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-06/txt/msg00081.txt.bz2 On 06/03/2014 12:53 PM, Pedro Alves wrote: > (gdb) PASS: gdb.base/sss-bp-on-user-bp-2.exp: define stepi_del_break > stepi_del_break > Cannot execute this command while the target is running. > (gdb) FAIL: gdb.base/sss-bp-on-user-bp-2.exp: stepi_del_break > > The error is because GDB tried to remove the breakpoint from > memory while the thread was running, and we can't talk to the > server in the all-stop RSP until we get a stop reply, but in any > case, GDB shouldn't even be attempting to remove the breakpoint, > exactly because there was a sss breakpoint at the same address. > > I've added a kfail, and pushed it. Gosh, so many different mode combinations... So the fix for PR17000 doesn't fix that failure when testing against gdbserver _and_ hardware stepping. Well, of course it doesn't, because in that case GDB will really try to remove the breakpoint, because there's no overlapping software single-step breakpoint. I've pushed this to detect the scenario and skip the test. 8<--------------------- Subject: [PATCH] Skip sss-bp-on-user-bp-2.exp on remote hardware step targets. gdb/testsuite/ 2014-06-03 Pedro Alves * gdb.base/sss-bp-on-user-bp-2.exp: Skip if testing with a remote target that doesn't use software single-stepping. --- gdb/testsuite/ChangeLog | 5 ++++ gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp | 39 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 644f5ac..8217403 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2014-06-03 Pedro Alves + * gdb.base/sss-bp-on-user-bp-2.exp: Skip if testing with a remote + target that doesn't use software single-stepping. + +2014-06-03 Pedro Alves + PR breakpoints/17000 * gdb.base/sss-bp-on-user-bp-2.c: New file. * gdb.base/sss-bp-on-user-bp-2.exp: New file. diff --git a/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp b/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp index a129bb7..b41f86e 100644 --- a/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp +++ b/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp @@ -42,6 +42,45 @@ if ![runto_main] { return 0 } +delete_breakpoints + +# With the all-stop RSP, we can't talk to the target while it's +# running, until we get back the stop reply. If not using single-step +# breakpoints, then the "del" in stepi_del_break below will try to +# delete the user breakpoint from the target, which will fail, with +# "Cannot execute this command while the target is running.". On +# software single-step targets, that del shouldn't trigger any RSP +# traffic. Just skip the test if testing against a remove target and +# not using software single-stepping. IOW, skip the test if we see a +# 'vCont;s' or 's' in the RSP traffic. + +gdb_test_no_output "set debug remote 1" + +set rsp_hardware_step 0 + +# Probe for software single-step breakpoint use. +set test "probe RSP hardware step" +gdb_test_multiple "si" $test { + -re "\\\$vCont;s.*$gdb_prompt $" { + set rsp_hardware_step 1 + pass $test + } + -re "\\\$s#.*$gdb_prompt $" { + set rsp_hardware_step 1 + pass $test + } + -re "$gdb_prompt $" { + pass $test + } +} + +if { $rsp_hardware_step } { + unsupported "remote target doesn't use software single-stepping" + return +} + +gdb_test_no_output "set debug remote 0" + set line_re "\[^\r\n\]*" gdb_test "b test:label" "Breakpoint .*" -- 1.9.0 -- Pedro Alves