From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28582 invoked by alias); 20 Dec 2013 16:07:27 -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 28573 invoked by uid 89); 20 Dec 2013 16:07:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 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; Fri, 20 Dec 2013 16:07:26 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rBKG7MPV017277 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 20 Dec 2013 11:07:22 -0500 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id rBKG7Kse032431; Fri, 20 Dec 2013 11:07:20 -0500 Message-ID: <52B46B37.5030500@redhat.com> Date: Fri, 20 Dec 2013 16:07: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: "Metzger, Markus T" CC: "jan.kratochvil@redhat.com" , "gdb-patches@sourceware.org" , Eli Zaretskii Subject: Re: [PATCH v9 29/29] record-btrace: add (reverse-)stepping support References: <1387471499-29444-1-git-send-email-markus.t.metzger@intel.com> <1387471499-29444-30-git-send-email-markus.t.metzger@intel.com> <52B3529E.70407@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2013-12/txt/msg00842.txt.bz2 On 12/20/2013 02:36 PM, Metzger, Markus T wrote: >> -----Original Message----- >> From: Pedro Alves [mailto:palves@redhat.com] >> Sent: Thursday, December 19, 2013 9:10 PM > > >>> + if (non_stop) >>> + error (_("Record btrace can't debug inferior in non-stop mode " >>> + "(non-stop).")); >> >> What's the intent of saying non-stop twice, in: >> >> "in non-stop mode (non-stop)" > > I took this from s/w record without thinking. Fixed. Ah, indeed I see it there now... >>> + /* Stop all other threads. */ >>> + if (!non_stop) >>> + ALL_THREADS (other) >>> + other->btrace.flags &= ~BTHR_MOVE; >> >> (I know it doesn't work currently), but in non-stop, the >> event thread should also get its BTHR_MOVE flag cleared. >> I didn't spot where that was being done. > > It's done in record_btrace_step_thread right at the beginning. > > >>> + /* GDB seems to need this. Without, a stale PC seems to be used >> resulting in >>> + the current location to be displayed incorrectly. */ >>> + registers_changed_ptid (tp->ptid); >> >> This really shouldn't be necessary, given target_resume does >> it for you. If you still needed, you're papering over some >> problem. > > If we start replaying in to_wait, we'll call get_current_frame > to fix up some stepping related frames. This will be done on > the current PC. > > When we step later on in record_btrace_step_thread, we change > the replay position but not the PC. Alright, that's the place to flush it then. It's just like the registers_changed calls in linux-nat.c, whenever the target resumes the thread behind the core's back: registers_changed (); if (linux_nat_prepare_to_resume != NULL) linux_nat_prepare_to_resume (lp); linux_ops->to_resume (linux_ops, pid_to_ptid (ptid_get_lwp (lp->ptid)), lp->step, GDB_SIGNAL_0); etc. > > I guess it will be more clear when I move this into > record_btrace_step_thread and change the comment. Thanks. -- Pedro Alves