From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13889 invoked by alias); 5 Jan 2003 17:02:23 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 13881 invoked from network); 5 Jan 2003 17:02:20 -0000 Received: from unknown (HELO localhost.redhat.com) (66.30.197.194) by 209.249.29.67 with SMTP; 5 Jan 2003 17:02:20 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id B33413D16; Sun, 5 Jan 2003 12:02:05 -0500 (EST) Message-ID: <3E18650D.6070603@redhat.com> Date: Sun, 05 Jan 2003 17:02:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.1) Gecko/20021211 X-Accept-Language: en-us, en MIME-Version: 1.0 To: msnyder@redhat.com Cc: Michael Elizabeth Chastain , ezannoni@redhat.com, drow@mvista.com, gdb-patches@sources.redhat.com Subject: Re: [RFA/PATCH] breakpoint.c: fix until command References: <200301040037.h040bAd22467@duracef.shout.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-01/txt/msg00183.txt.bz2 > Michael Snyder formulates: > >> 1) Use find_pc_partial_function to determine bounds and >> distinguish between in-bounds and out-of-bounds locations. >> 2) For func_start > loc >= func_end, use a frame-relative bp. >> 3) For func_start == loc or loc < func_start or loc > func_end, >> use a frameless bp. This doesn't work. It hightlights why the edge condition can't be cleanly resolved. You can't rely on ``func_start == loc'' as an identifier of this special case. The prolog analysis / skip will just make the behavior confusing / conunter intitive and the doco really messy. Look at the heated debate that occures with ``break foo'' vs ``break *foo'' vs ``break lineof(foo)''. Consider for instance: (gdb) break foo (gdb) c Break point foo reached (gdb) until foo depending on the prolog analysis (and hence the architecture), this will behave differently. I personally think the decision reached several months ago should stand - `until foo' behaves per the documentation. We can then separatly persue a recursive centric version of the function vis: - finish LOCATION - rbreak (set tempoary breakpoint at return address) ... Andrew