Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <dan@codesourcery.com>
To: Doug Evans <dje@google.com>
Cc: temp@sourceboost.com, gdb@sourceware.org
Subject: Re: Getting pissed off by gdb. Please help with stepping in.
Date: Thu, 18 Mar 2010 13:33:00 -0000	[thread overview]
Message-ID: <20100318133334.GA7732@caradoc.them.org> (raw)
In-Reply-To: <e394668d1003180022i109dfcb4kc3eb23cc856814e6@mail.gmail.com>

On Thu, Mar 18, 2010 at 12:22:20AM -0700, Doug Evans wrote:
> This patch for cvs head gets things working for me.  I haven't run it
> through the testsuite, and it might be nice compare more than just
> frame ids (and for the gdb crowd, yes, the FIXME needs to go before
> being checked in ...), but .... this patch seems otherwise reasonable
> to me.  At the point where the patch is applied gdb has already
> decided to continue - what's a case where it *should* continue at this
> point *if* the frame has changed?  [Note that gdb has already handled
> various cases like stopping in trampolines and such.]

In addition to what Eli said... here's the previous block:

  if ((stop_pc == stop_pc_sal.pc)
      && (ecs->event_thread->current_line != stop_pc_sal.line
          || ecs->event_thread->current_symtab != stop_pc_sal.symtab))
    {
      /* We are at the start of a different line.  So stop.  Note that
         we don't stop if we step into the middle of a different line.
         That is said to make things like for (;;) statements work
         better.  */

IOW, if we are at a line boundary, we stop stepping.  If we've ended
up in the middle of a line, we keep going.  This prevents us from
ending up in a weird state where we show the line containing the
function call, but the function has already been called.  I think it'd
be even more confusing.

This is a difference between stepping out of a function and finishing.

Now, if you end up in a different function while continuing to step
(or "next"), there's a good argument that you should stop...

-- 
Daniel Jacobowitz
CodeSourcery


  parent reply	other threads:[~2010-03-18 13:33 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-18  2:39 temp
2010-03-18  3:00 ` Hui Zhu
2010-03-18  3:03 ` Nathan Froyd
2010-03-18  7:22 ` Doug Evans
2010-03-18  9:07   ` Eli Zaretskii
2010-03-18 15:10     ` Doug Evans
2010-03-18 15:21       ` Pedro Alves
2010-03-18 18:33         ` Eli Zaretskii
2010-03-18 18:55           ` Pedro Alves
2010-03-18 19:38             ` Eli Zaretskii
2010-03-18 19:54               ` Mark Kettenis
2010-03-18 20:43                 ` Doug Evans
2010-03-18 20:51                   ` Michael Snyder
2010-03-18 21:17                     ` Pedro Alves
2010-03-18 21:12                 ` Eli Zaretskii
2010-03-18 23:37                 ` Paul Hilfinger
2010-03-19  9:51                 ` Richard Earnshaw
2010-03-19 10:41                   ` Mark Kettenis
2010-03-19 13:19                     ` Eli Zaretskii
2010-03-19 10:19                 ` André Pönitz
2010-03-18 15:28       ` Doug Evans
2010-03-18 18:31       ` Eli Zaretskii
2010-03-18 18:37         ` Paul Koning
2010-03-18 19:06           ` Doug Evans
2010-03-18 20:48             ` Jonas Maebe
2010-03-18 13:33   ` Daniel Jacobowitz [this message]
2010-03-18 14:06     ` André Pönitz
2010-03-18 14:13       ` Daniel Jacobowitz
2010-03-18 14:33         ` André Pönitz
2010-03-18 14:39           ` Daniel Jacobowitz
2010-03-18 14:54             ` André Pönitz
2010-03-18 15:40     ` Doug Evans
2010-03-18 17:41   ` Michael Snyder
2010-03-18 22:44 ` temp

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=20100318133334.GA7732@caradoc.them.org \
    --to=dan@codesourcery.com \
    --cc=dje@google.com \
    --cc=gdb@sourceware.org \
    --cc=temp@sourceboost.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