From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31144 invoked by alias); 15 Dec 2014 14:58:31 -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 31133 invoked by uid 89); 15 Dec 2014 14:58:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Mon, 15 Dec 2014 14:58:29 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id A051111650D; Mon, 15 Dec 2014 09:58:27 -0500 (EST) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Hq5FZRX9BPdj; Mon, 15 Dec 2014 09:58:27 -0500 (EST) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 90DBC11650C; Mon, 15 Dec 2014 09:58:27 -0500 (EST) Received: by joel.gnat.com (Postfix, from userid 1000) id B8F5D40164; Mon, 15 Dec 2014 09:58:27 -0500 (EST) Date: Mon, 15 Dec 2014 14:58:00 -0000 From: Joel Brobecker To: Pedro Alves Cc: gdb-patches@sourceware.org Subject: Re: RFC: skip_inline_frames failed assertion resuming from breakpoint on LynxOS Message-ID: <20141215145827.GY5457@adacore.com> References: <20141120051109.GR5774@adacore.com> <20141120051223.GA23720@adacore.com> <546DBA9F.9060600@redhat.com> <20141120171137.GT5774@adacore.com> <546F173A.3070204@redhat.com> <20141213154638.GK5457@adacore.com> <548EDE03.7090005@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <548EDE03.7090005@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SW-Source: 2014-12/txt/msg00390.txt.bz2 > > gdb/gdbserver/ChangeLog: > > > > * lynx-low.c (lynx_resume): Use PTRACE_SINGLESTEP_ONE if N == 1. > > Remove FIXME comment about assumption about N. > > > > OK to commit? > > Sure, OK. Thank you, pushed! > GDB nowadays sends a single vCont packet that both steps thread A, > continues thread B with a signal and continues all other threads with > no signal (previously in some cases it'd just lose control of the > inferior, or deliver the signal to the wrong thread). Something like: > > vCont;s:A;C SIG:B;c [...] > Couldn't you iterate over the threads, and use PTRACE_STEP_ONE > for the stepped threads, and PTRACE_CONT_ONE for the others, > instead of PTRACE_CONT ? For the case above, lynx_resume would > end up issuing: > > PTRACE_STEP_ONE, thread A, sig 0 > PTRACE_CONT_ONE, thread B, sig SIG > PTRACE_CONT_ONE, thread C, sig 0 > PTRACE_CONT_ONE, thread D, sig 0 Interesting. Do you mean sending those requests without waiting for the inferior to stop? I'd have to verify that it's possible to send ptrace requests while the inferior is "in flight", but wouldn't you then have possible race conditions? -- Joel