From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4743 invoked by alias); 19 Jan 2011 21:09:30 -0000 Received: (qmail 4735 invoked by uid 22791); 19 Jan 2011 21:09:29 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,TW_GJ,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 19 Jan 2011 21:09:25 +0000 Received: (qmail 24592 invoked from network); 19 Jan 2011 21:09:23 -0000 Received: from unknown (HELO scottsdale.localnet) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 19 Jan 2011 21:09:23 -0000 From: Pedro Alves To: gdb-patches@sourceware.org Subject: Re: [patch] Fix leak of bp_jit_event breakpoints Date: Wed, 19 Jan 2011 21:14:00 -0000 User-Agent: KMail/1.13.5 (Linux/2.6.35-24-generic; KDE/4.5.1; x86_64; ; ) Cc: Paul Pluzhnikov References: <20110119204315.0A235190C48@elbrus2.mtv.corp.google.com> In-Reply-To: <20110119204315.0A235190C48@elbrus2.mtv.corp.google.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201101191409.17445.pedro@codesourcery.com> X-IsSubscribed: yes 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 X-SW-Source: 2011-01/txt/msg00413.txt.bz2 On Wednesday 19 January 2011 13:43:15, Paul Pluzhnikov wrote: > @@ -10588,11 +10588,12 @@ breakpoint_re_set_one (void *bint) > printf_filtered (_("Deleting unknown breakpoint type %d\n"), > b->type); /* fall through */ > /* Delete overlay event and longjmp master breakpoints; they will be > - reset later by breakpoint_re_set. */ > + reset later by breakpoint_re_set. Likewise for jit_event. */ > case bp_overlay_event: > case bp_longjmp_master: > case bp_std_terminate_master: > case bp_exception_master: > + case bp_jit_event: > delete_breakpoint (b); > break; > > @@ -10619,7 +10620,6 @@ breakpoint_re_set_one (void *bint) > case bp_longjmp_resume: > case bp_exception: > case bp_exception_resume: > - case bp_jit_event: > break; > } This part doesn't look quite right. In non-stop (breakpoint always-inserted) mode, this looks it will create a race window where you delete the jit event breakpoint whenever a random thread loads/unloads a DSO, meaning you could miss a jit registration done by some other thread still running. -- Pedro Alves