This is the mail archive of the
mailing list for the GDB project.
Re: [RFA/PATCH] breakpoint.c: fix until command
- From: Andrew Cagney <ac131313 at redhat dot com>
- To: msnyder at redhat dot com
- Cc: Michael Elizabeth Chastain <mec at shout dot net>, ezannoni at redhat dot com,drow at mvista dot com, gdb-patches at sources dot redhat dot com
- Date: Sun, 05 Jan 2003 12:02:05 -0500
- Subject: Re: [RFA/PATCH] breakpoint.c: fix until command
- References: <200301040037.h040bAd22467@duracef.shout.net>
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)''.
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.
Consider for instance:
(gdb) break foo
Break point foo reached
(gdb) until foo
depending on the prolog analysis (and hence the architecture), this will
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
- finish LOCATION
(set tempoary breakpoint at return address)