Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Elena Zannoni <ezannoni@redhat.com>
To: Michael Snyder <msnyder@redhat.com>
Cc: Daniel Jacobowitz <drow@mvista.com>,
	ezannoni@redhat.com, gdb-patches@sources.redhat.com
Subject: Re: [RFA/PATCH] breakpoint.c: fix until command
Date: Fri, 03 Jan 2003 14:29:00 -0000	[thread overview]
Message-ID: <15893.40776.758960.171190@localhost.redhat.com> (raw)
In-Reply-To: <3E14F768.DA13CB07@redhat.com>

Michael Snyder writes:
 > > > You raise a good point.  The commands "until <line>" and "until <func>"
 > > > are inconsistant.  Moreover the docs do not seem to describe this
 > > > recursion behavior.  Maybe a conversation with a wider audience is
 > > > in order (the gdb list)?  I'm sure I can't be the only one who
 > > > remembers that "until" behaved this way, and we shouldn't change
 > > > the behavior precipitously.
 > > 
 > > Am I the only one getting the feeling that we have two useful behaviors
 > > here; and that we should pick one for "until" but expose the other
 > > under some other name or with some option?
 > 
 > ;-)  That's often the case when someone feels 'intuitively' that 
 > gdb should behave differently.  We have to look out for feeping
 > creaturitis, but in this case I'm getting the impression that the
 > two behaviors are mutually incompatible, and may need to be separated
 > somehow.
 > 
 > If you say "until <line>", and the line is inside the current function,
 > you can impose the frame restriction.  If the line (or address) is outside 
 > the current function, or if you give a function name or something else, 
 > you can't.  And I don't think we can code that distinction at runtime.

I think we should come up with a behavior matrix, something like:

until: 
 continue until next source line is reached. If already at the last line
 of current function, continue until current frame pops.

until line:
 a. line in current function (1) --> continue until the line is reached.
 b. line in function in inner frame --> continue until the line is reached.
 c. line in function not in inner frame --> continue until current frame pops.

(1) However if current function is recursive, a. should become like
    b. But we want to enforce a different behavior, because we don't
    want to stop in the inner frame. --> this is the main problem,
    because the condition is basically impossible to figure out at run
    time.

until funcname:
 d. funcname called from current frame (2) --> continue until func is reached
 e. funcname not called from current frame --> cont until current frame pops.

(2) if current function is recursive and funcame == current function
    we want to stop at the next inner invocation of funcname


The 'continue until current frame pops' behavior is already there. It
always puts another bp_until at the caller.


  reply	other threads:[~2003-01-03 14:29 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-20 10:19 Elena Zannoni
2002-12-23 15:55 ` Michael Snyder
2002-12-23 16:13   ` Daniel Jacobowitz
2002-12-23 16:59     ` Michael Snyder
2002-12-23 19:23       ` Daniel Jacobowitz
2003-01-02 20:25         ` Michael Snyder
2003-01-02 20:34           ` Elena Zannoni
2003-01-02 20:40             ` Michael Snyder
2003-01-03  0:12             ` Elena Zannoni
2003-01-03  1:44               ` Michael Snyder
2003-01-03  1:50                 ` Daniel Jacobowitz
2003-01-03  2:37                   ` Michael Snyder
2003-01-03 14:29                     ` Elena Zannoni [this message]
2003-01-03 23:51                       ` Michael Snyder
2003-01-03 23:53                         ` Elena Zannoni
2003-01-04  0:05                           ` Michael Snyder
2003-01-04  1:54                             ` Daniel Jacobowitz
2003-01-06 22:06                               ` Elena Zannoni
2003-01-07  1:27                                 ` Michael Snyder
2003-01-07  1:45                                   ` Elena Zannoni
2003-01-07  2:09                                     ` Michael Snyder
2003-01-07  4:31                                       ` Daniel Jacobowitz
2003-01-08 22:08                                         ` Elena Zannoni
2003-01-09  1:52                                           ` Daniel Jacobowitz
2003-01-10 22:25                                             ` Elena Zannoni
2003-01-10 22:28                                               ` Daniel Jacobowitz
2003-01-10 23:20                                                 ` Elena Zannoni
2003-01-03 14:15                   ` Elena Zannoni
2003-01-03 23:31                     ` Michael Snyder
2003-01-03 23:51                       ` Elena Zannoni
2003-01-03 23:58                         ` Michael Snyder
2003-01-03 14:13                 ` Elena Zannoni
2003-01-03 23:28                   ` Michael Snyder
2003-01-02 20:01       ` Elena Zannoni
2003-01-02 20:29         ` Michael Snyder
2003-01-03  4:15 Michael Elizabeth Chastain
2003-01-03  4:59 ` Daniel Jacobowitz
2003-01-03 21:52   ` Michael Snyder
2003-01-03 21:54     ` Daniel Jacobowitz
2003-01-03 22:39       ` Elena Zannoni
2003-01-03 23:09         ` Michael Snyder
2003-01-03 14:43 ` Elena Zannoni
2003-01-03 22:06   ` Michael Snyder
2003-01-03 22:43     ` Elena Zannoni
2003-01-03 23:13       ` Michael Snyder
2003-01-03  6:49 Michael Elizabeth Chastain
2003-01-03 15:17 ` Daniel Jacobowitz
2003-01-03 16:38 Michael Elizabeth Chastain
2003-01-03 16:57 ` Daniel Jacobowitz
2003-01-03 16:48 Michael Elizabeth Chastain
2003-01-03 23:33 ` Michael Snyder
2003-01-03 17:07 Michael Elizabeth Chastain
2003-01-03 17:51 ` Elena Zannoni
2003-01-03 17:40 Michael Elizabeth Chastain
2003-01-03 18:03 Michael Elizabeth Chastain
2003-01-04  0:37 Michael Elizabeth Chastain
2003-01-05 17:02 ` Andrew Cagney
2003-01-07  1:30   ` Michael Snyder
2003-01-07  3:53 Michael Elizabeth Chastain
2003-01-07  4:05 Michael Elizabeth Chastain
2003-01-11  1:04 Michael Elizabeth Chastain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=15893.40776.758960.171190@localhost.redhat.com \
    --to=ezannoni@redhat.com \
    --cc=drow@mvista.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=msnyder@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox