From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30235 invoked by alias); 11 Sep 2014 10:27:05 -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 30222 invoked by uid 89); 11 Sep 2014 10:27:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.4 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 (AES256-GCM-SHA384 encrypted) ESMTPS; Thu, 11 Sep 2014 10:27:03 +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 s8BAR0LO024847 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 11 Sep 2014 06:27:00 -0400 Received: from blade.nx (ovpn-116-85.ams2.redhat.com [10.36.116.85]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s8BAR05G000901; Thu, 11 Sep 2014 06:27:00 -0400 Received: by blade.nx (Postfix, from userid 1000) id 739C52640D8; Thu, 11 Sep 2014 11:26:59 +0100 (BST) Date: Thu, 11 Sep 2014 10:27:00 -0000 From: Gary Benson To: Doug Evans Cc: gdb-patches@sourceware.org, Pedro Alves Subject: Re: [PATCH 3/9 v7] Introduce target_{stop,continue}_ptid Message-ID: <20140911102659.GA17472@blade.nx> References: <1409320299-6812-1-git-send-email-gbenson@redhat.com> <1409320299-6812-4-git-send-email-gbenson@redhat.com> <21520.36381.756875.963606@ruffy2.mtv.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <21520.36381.756875.963606@ruffy2.mtv.corp.google.com> X-IsSubscribed: yes X-SW-Source: 2014-09/txt/msg00351.txt.bz2 Doug Evans wrote: > Gary Benson writes: > > This commit introduces two new functions to stop and restart > > target processes that shared code can use and that clients must > > implement. It also changes some shared code to use these > > functions. > [...] > > +/* See target/target.h. */ > > + > > +void > > +target_continue_ptid (ptid_t ptid) > > +{ > > + target_resume (ptid, 0, GDB_SIGNAL_0); > > +} > > How come GDB_SIGNAL_0 is used here? > Maybe it's correct, but it's not immediately clear. > > The reason I ask is because there are two ways to "continue" > the inferior: > 1) resume it where it left off, and if it stopped because > of a signal then forward on that signal (assuming the > signal is not "nopass") (GDB_SIGNAL_DEFAULT). > 2) Either inject a new signal (GDB_SIGNAL_FOO) or cancel out > a previously queued signal (GDB_SIGNAL_0). > > GDB_SIGNAL_0 is used to resume the target and discarding > any signal that it may have stopped for. > GDB_SIGNAL_DEFAULT is used for (1). > > I realize the comments for target_resume say to not pass > GDB_SIGNAL_DEFAULT to it. But the name "target_continue_ptid" > with no option to choose between (1) and (2) > says to me "do what GDB_SIGNAL_DEFAULT" does. I don't know the answer to this, I just moved the code from one place to the next :) Possibly it's because (I think) under the hood target_stop_ptid sends a SIGSTOP to the inferior, so you don't want to restart it with that signal queued. The comment for target_continue_ptid says: > > +/* Restart a target that was previously stopped by target_stop_ptid. > > + This function must be provided by the client. */ That implies to me "don't use this for targets not previously stopped by target_stop_ptid". Maybe someone more familiar with this code could elaborate? Thanks, Gary -- http://gbenson.net/