From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31042 invoked by alias); 19 Aug 2014 15:37:39 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 31031 invoked by uid 89); 19 Aug 2014 15:37:39 -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 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 (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 19 Aug 2014 15:37:38 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s7JFbWOf011837 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 19 Aug 2014 11:37:32 -0400 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s7JFbU4C010679; Tue, 19 Aug 2014 11:37:31 -0400 Message-ID: <53F36F39.8090201@redhat.com> Date: Tue, 19 Aug 2014 15:37:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Chris January , gdb@sourceware.org Subject: Re: catch signal does not appear multi-inferior safe References: <1405076204.3524.8.camel@chris-xps13> In-Reply-To: <1405076204.3524.8.camel@chris-xps13> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-08/txt/msg00075.txt.bz2 On 07/11/2014 11:56 AM, Chris January wrote: > Hello, > > It appears to me that the 'catch signal' support in GDB is not > multi-inferior safe. Combining the 'catch signal' command with the > 'checkpoint' command, for example, results in an internal error: > > break-catch-sig.c:152: internal-error: > signal_catchpoint_remove_location: Assertion `signal_catch_counts[iter] >> 0' failed. > A problem internal to GDB has been detected, > further debugging may prove unreliable. > Quit this debugging session? (y or n) > > see the end of this e-mail for reproducer. > > When checkpointing / catching a fork signal_catchpoint_remove_location > may be called twice in a row - once for the parent and once for the > child. Signal catchpoint locations aren't really per-process; they're global. GDB shouldn't be trying to detach them from the child. Where is this happening? Is this from detach_breakpoint ? That's odd, since that skips bp_loc_other locations? > This causes signal_catch_counts to go below 0. I would like some > advice on how to fix this problem as I am not sure what the correct fix > is. -- Thanks, Pedro Alves