From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9036 invoked by alias); 4 Nov 2008 18:32:41 -0000 Received: (qmail 8927 invoked by uid 22791); 4 Nov 2008 18:32:37 -0000 X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 04 Nov 2008 18:32:00 +0000 Received: (qmail 21585 invoked from network); 4 Nov 2008 18:31:57 -0000 Received: from unknown (HELO orlando.local) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 4 Nov 2008 18:31:57 -0000 From: Pedro Alves To: teawater Subject: Re: [RFA] target adjust pc after break with itself Date: Tue, 04 Nov 2008 18:32:00 -0000 User-Agent: KMail/1.9.10 Cc: "gdb-patches@sourceware.org" , "Michael Snyder" References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200811041832.02519.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: 2008-11/txt/msg00041.txt.bz2 Hi, On Sunday 02 November 2008 06:01:29, teawater wrote: > Hi Pedro, > > According to your idea, I write a patch > "target_adjust_pc_with_itself.txt" for it. It's for the main trunk and > 20080930 branch. > Could we place this in the branch only for a while and let it cook there? There's nothing in mainline that would require this for now, unless Michael wants to do something similar for his remote target. Your patch will do for target record, though there are several other places that check gdbarch_decr_pc_after_break () outside of infrun that should be adjusted --- but no other target cares currently. Maybe we should centralize this a bit more, so a single call would be needed everywhere else instead of (if !target_adjusts_pc_... && gdbarch_decr_pc...)) I'm always thinking about target remote when I add new target_ops interfaces, because that's the case where the decoupling is as high as it comes; with that in mind, I don't think that there'll be cases were the gdbarch does decr_pc_after_break == 0, while the target will want to override it to != 0; this interface is probably fine. I'm not a native speaker as well, but "with itself" doesn't sound right to me. How about something like: target_adjusts_pc_after_break () if (target_adjusts_pc_after_break ()) return; /* ... then we don't have to. */ or target_adjusts_pc_after_break_itself ? > 2008-11-02 Hui Zhu > > * target.h (target_ops): Add "to_adjust_pc_with_itself". > Return true if target adjust pc after break with itself. > (target_adjust_pc_with_itself): New macro. > Call "to_adjust_pc_with_itself". > * target.c (update_current_target): Set > "to_adjust_pc_with_itself". > * infrun.c (adjust_pc_after_break): If > "target_adjust_pc_with_itself" return true, not adjust pc. > > To make P record support it. I make another patch > "record_adjust_pc_with_itself.txt". > > 2008-11-02 Hui Zhu > > * record.c (record_adjust_pc_with_itself): New function. > Return true. > (init_record_ops): Set to_adjust_pc_with_itself point to > record_adjust_pc_with_itself. -- Pedro Alves