From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21227 invoked by alias); 28 Sep 2009 17:39:19 -0000 Received: (qmail 21207 invoked by uid 22791); 28 Sep 2009 17:39:18 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 28 Sep 2009 17:39:11 +0000 Received: (qmail 28981 invoked from network); 28 Sep 2009 17:39:09 -0000 Received: from unknown (HELO orlando) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 28 Sep 2009 17:39:09 -0000 From: Pedro Alves To: gdb-patches@sourceware.org Subject: Re: [rfc] Fix PowerPC displaced stepping regression Date: Mon, 28 Sep 2009 17:39:00 -0000 User-Agent: KMail/1.9.10 Cc: "Ulrich Weigand" , Julian Brown , Daniel Jacobowitz References: <200909281727.n8SHR3oW016296@d12av02.megacenter.de.ibm.com> In-Reply-To: <200909281727.n8SHR3oW016296@d12av02.megacenter.de.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200909281839.24088.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: 2009-09/txt/msg00873.txt.bz2 On Monday 28 September 2009 18:27:03, Ulrich Weigand wrote: > > ... that is, we'd remove the checks for use_displaced_stepping from > > maybe_software_singlestep, and use something like the > > above in displaced_step_fixup, where we issue the target_resume > > (with `step' being what gdbarch_displaced_step_copy_insn reported > > it wanted). > > Maybe I misunderstood your point here, but I don't think we can > actually do SW single-step on the displaced copy (using the normal > SW single-step mechanism). The way SW single-step ususally works > is to place breakpoints at all potential branch targets. But if > we have a displaced PC-relative branch, for example, the branch > target may not even point to addressable memory, so we cannot put > breakpoints there. If you get yourself such an instruction in the buffer, usually you'd want the branch offset had to be adjusted at displaced copy time, otherwise it seems to be you're already broken. But I did post a confusing snippet, sorry. All I meant was to have displaced_step_copy routine to tell infrun.c to call target_resume(continue), instead of target_resume(step). Your version works for that too. > It seems best to never call maybe_software_single_step on displaced > copies, like my patch does. If the target wants to place breakpoint > instructions somewhere in there, it can do so during copy_insn. Yes, like arm does. -- Pedro Alves