From: Daniel Jacobowitz <drow@false.org>
To: Paul Brook <paul@nowt.org>
Cc: gdb-patches@sourceware.org
Subject: Re: mi-until.exp failures
Date: Thu, 30 Mar 2006 09:49:00 -0000 [thread overview]
Message-ID: <20060329234041.GE9916@nevyn.them.org> (raw)
In-Reply-To: <200603031503.50340.paul@nowt.org>
On Fri, Mar 03, 2006 at 03:03:50PM +0000, Paul Brook wrote:
> I'm seeing the following failures on arm-none-eabi with a gcc4.x compiler:
>
> FAIL: gdb.mi/mi-until.exp: until after while loop (timeout)
> FAIL: gdb.mi/mi2-until.exp: until after while loop (timeout)
>
> Turns out that this the "until" command actuig in unexpected ways, as
> described in this thread:
> http://sources.redhat.com/ml/gdb/2005-02/msg00151.html
>
> AFAICS there's not been any real consensus whether this is a bug or a feature.
> I've had a quick look at making the command work purely on source lines,
> and concluded I don't have the time/inclination to make it work. I just want
> to squish the unexpected testsuite failure.
I see that I never responded to Eli last February; lo and behold, it's
two of the 528 new messages in my gdb@ folder. Shame on me.
I just went through until_next_command and next_command/step_1 line by
line. The current implementation of until_next_command is similar to
"next", except that the stepping range is from the start of the
function to the current PC; so it is clearly "step until a higher PC"
[I had to look a couple of times to figure out how it worked]. It's
been that way since before the dawn of recorded cvs annotate.
Here's what the documentation actually says:
Continue running until a source line past the current line, in the
current stack frame, is reached. This command is used to avoid
single stepping through a loop more than once. It is like the
`next' command, except that when `until' encounters a jump, it
automatically continues execution until the program counter is
greater than the address of the jump.
This means that when you reach the end of a loop after single
stepping though it, `until' makes your program continue execution
until it exits the loop. In contrast, a `next' command at the end
of a loop simply steps back to the beginning of the loop, which
forces you to step through the next iteration.
The first two sentences agree with the testcase. The next sentence
describes what is actually implemented. The second paragraph concludes
that the two are equivalent. This was clearly the case in a previous
generation of compilers, but it isn't any more.
So:
> b) Decide this is a bug. I will file a bug and kfail the testcase.
>
> Ok? PASS or KFAIL?
> 2006-03-03 Paul Brook <paul@codesourcery.com>
>
> * gdb.mi/mi-until.exp: kfail broken until command.
> * gdb.mi/mi2-until.exp: Ditto.
I'll approve this one. It's actually in the test_until function, by
the way.
It's a bug; it would be nice if someone fixed it, but infrun may need
some care and attention first.
--
Daniel Jacobowitz
CodeSourcery
next prev parent reply other threads:[~2006-03-29 23:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-03 15:31 Paul Brook
2006-03-30 9:49 ` Daniel Jacobowitz [this message]
2006-03-30 16:34 ` Paul Brook
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=20060329234041.GE9916@nevyn.them.org \
--to=drow@false.org \
--cc=gdb-patches@sourceware.org \
--cc=paul@nowt.org \
/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