From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11640 invoked by alias); 28 Feb 2013 06:51:32 -0000 Received: (qmail 11632 invoked by uid 22791); 28 Feb 2013 06:51:31 -0000 X-SWARE-Spam-Status: No, hits=-4.3 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 28 Feb 2013 06:51:07 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1UAxKc-0003XW-A5 from Hui_Zhu@mentor.com ; Wed, 27 Feb 2013 22:51:06 -0800 Received: from SVR-ORW-FEM-04.mgc.mentorg.com ([147.34.97.41]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Wed, 27 Feb 2013 22:51:06 -0800 Received: from [127.0.0.1] (147.34.91.1) by svr-orw-fem-04.mgc.mentorg.com (147.34.97.41) with Microsoft SMTP Server id 14.1.289.1; Wed, 27 Feb 2013 22:51:05 -0800 Message-ID: <512EFE54.4080809@mentor.com> Date: Thu, 28 Feb 2013 07:16:00 -0000 From: Hui Zhu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20130126 Thunderbird/19.0 MIME-Version: 1.0 To: Pedro Alves CC: , , Yao Qi Subject: Re: [PATCH] Support targets that know how to step over breakpoints References: <506D859E.9050600@codesourcery.com> <507E99BB.8050105@codesourcery.com> <508FB2B6.6040006@codesourcery.com> <50B4DA35.3010206@codesourcery.com> <50B4E83D.9010507@redhat.com> <50B76F6A.5060802@codesourcery.com> <50B90007.6000802@redhat.com> <50B900B3.1010007@redhat.com> In-Reply-To: <50B900B3.1010007@redhat.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit 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: 2013-02/txt/msg00723.txt.bz2 Hello guys, I am just working on this function. Now, I named the function to "continue_over_breakpoints". As its name, when GDB got a breakpoint that it want to pass it, just use "continue_over_breakpoints" replace "continue". -> vCont;cob There are 2 parts that I hope to get morecomments: 1. When the gdb want remote target use "continue_over_breakpoints", there need some update in to_resume. If add new flags to to_resume, it will make a lot of functions of xxx_resume update. So what I thought is what about let step to -1 when GDB want "continue_over_breakpoints"? Or just add a new to_continue_over_breakpoints interface? 2. About the test, my understand about Pedro's comments is: force GDB use "continue_over_breakpoints" with "set remote xxx on". And add new option to gdbserver let it open support to "continue_over_breakpoints". Then we can test it. My understandis right? Please help me with them. Thanks, Hui On 12/01/12 02:53, Pedro Alves wrote: > On 11/30/2012 06:50 PM, Pedro Alves wrote: >> On 11/29/2012 02:21 PM, Luis Machado wrote: >>> On 11/27/2012 02:20 PM, Pedro Alves wrote: >>>> On 11/27/2012 03:20 PM, Luis Machado wrote: >>>> >>>>> Meanwhile i've updated this patch for the latest cvs head. >>>>> >>>>> I'm wondering if the patch is too ugly for someone to take a look at it or if it is too odd a feature to add. I suppose not. >>>>> >>>>> Hopefully i can get some traction with this new refreshed and shiny version! :-) >>>> >>>> I was hoping others could comment. :-) >>>> >>>> Last we discussed this (probably a years ago already), I expressed my >>>> concern with upstreaming this as is. It's that this works by sending a regular >>>> step command to the target, and then the target steps over any breakpoint that >>>> may be at the current PC. If GDB is wanting to move past a breakpoint, this still >>>> needs to do: >>>> >>>> -> vCont;s >>>> <- T05 (step finished) >>>> <- vCont;c >>>> >>> >>> This seems suboptimal, though the outcome is the same. >>> >>>> An alternative would be to get rid of that T05, by defining new commands that >>>> tell the target to step-over-breakpoint, or continue-over-breakpoint (and signal >>>> variants). E.g., sbc to mean step-break-continue: >>> >>> If GDB knows the target supports stepping/continuing over breakpoints, should we bother with >>> adding new commands at all? Or are we assuming "step over" means just single-stepping? In any >>> case, the target can probably internally step over such a breakpoint before effectively continuing >>> in response to a vCont;c packet. What do you think? >> >> We have cases where we want to vCont;c with a breakpoint at PC, and really >> hit it. That's how "jump" works, but we have other cases in >> handle_inferior_event that rely on that too (signal handler related things). >> >>> We would then get rid of both the vCont;s and the T05 response. >>> >>>> >>>> -> vCont;spc >>>> >>>> That'd move past the breakpoint without causing a stop immediately. >>>> >>>> Guess I need to convince myself the current design is good enough. Comments? >>>> >>> >>> Though suboptimal, the design seems to do the job without being ugly. That said, the vCont;c case could be addressed for a cleaner feature. >>> >>> But i think new commands are a little too much. >> >> I suppose the current proposal isn't that much of a burden to support >> and I could well live with it. >> >>> Testing this is also a problem i'm worried about. We can't reliably test this (and other) features >>> that are not properly supported by gdbserver, but i suppose this is a different discussion. >> >> Actually, nowadays x86 GNU/Linux gdbserver is able to step ever >> breakpoints. See linux-low.c:linux_resume. But we don't want to >> use that support for regular breakpoints, because it's implemented >> by the old stop everything/remove break / step/put breakpoint back / resume >> dance, and displaced stepping is better. So we could hack it into >> the semantics of this qSupported feature, and run the whole >> testsuite with that forced enabled (e.g., with a "set remote foo" command >> in a board file). > > ... and we could add a smoke test to gdb.server/ that did the same > forcing, if it turns out that making the gdbserver peg fit the hole > isn't an ugly/big change. >