From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25107 invoked by alias); 5 Mar 2014 15:45:20 -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 25088 invoked by uid 89); 5 Mar 2014 15:45:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 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; Wed, 05 Mar 2014 15:45:18 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s25FjGXq026427 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 5 Mar 2014 10:45:17 -0500 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s25FjCIv017568; Wed, 5 Mar 2014 10:45:15 -0500 Message-ID: <53174687.2000002@redhat.com> Date: Wed, 05 Mar 2014 15:45:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Pedro Alves CC: gdb-patches@sourceware.org Subject: Re: [PATCH 4/6] Fix for even more missed events; eliminate thread-hop code. References: <1393360363-5603-1-git-send-email-palves@redhat.com> <1393360363-5603-5-git-send-email-palves@redhat.com> In-Reply-To: <1393360363-5603-5-git-send-email-palves@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-03/txt/msg00125.txt.bz2 On 02/25/2014 08:32 PM, Pedro Alves wrote: > But in order to do that, we need to make bpstat aware of single-step > breakpoints. So this patch starts convering the single-step > breakpoints to real breakpoints. It doesn't put them in the regular > breakpoint chain yet though. More changes would be needed for that. Unfortunately we're still not ready for this. watch-cond-infcall.exp revealed that we need to remove single-step breakpoints before running the infcall for the condition, otherwise nasty things happen, like GDB referencing already deleted breakpoints following the bpstat struct. I didn't notice this before as the failure is intermittent, but valgrind showed it clearly. Also, patch #5's thread_still_needs_step_over function call from keep_going meant that the end result of the series would be that we'd no longer move the thread past the single-step breakpoint, actually, as the single-step breakpoint (for the other thread) was always removed before keep_going was reached... int thread_still_needs_step_over (struct thread_info *tp) { if (tp->stepping_over_breakpoint) { struct regcache *regcache = get_thread_regcache (tp->ptid); if (breakpoint_here_p (get_regcache_aspace (regcache), regcache_read_pc (regcache))) v2 simplifies the patch further, and no longer needs to convert single-step breakpoints to real breakpoints. I'll get back to that separately... -- Pedro Alves