Re: Improve end check on rs6000 prologue analyzer

Daniel Jacobowitz
2007-03-12T12:19:03Z

On Sun, Mar 11, 2007 at 08:13:14PM +0100, Mark Kettenis wrote:
> Here's a diff of gdb.sum without and with your diff (testsuite with
> your diff). The gdb.base/attach.exp failure is "normal"; the result
> of that test flips between PASS and FAIL. As you can see, there are
> still "odd location failures". Here is an excerpt from gdb.log for one:
>
> (gdb) list
> 134 char *ttyarg = NULL;
> (gdb) step
> 120 {
> (gdb) PASS: gdb.gdb/selftest.exp: step over ttyarg initialization
> list
> 120 {
> (gdb) FAIL: gdb.gdb/selftest.exp: step over ttyarg initialization ended up at odd location
> step
> 133 char *cdarg = NULL;
> (gdb) PASS: gdb.gdb/selftest.exp: step over ttyarg initialization
>
> This looks as pretty acceptable behaviour. The initializations have
> been moved into the prologue so while stepping over the
> initializations, we hop back and forth. I'm willing to accept this as
> a testsuite problem ;-).

Me too. But one thing is really puzzling! We're testing the result
of "list" here. The huge gdb_expect includes these two:

-re "\[0-9\]*\t\{\r\n$gdb_prompt $" {
set description "step over initial brace"
set command "step"
}

-re "\[ \t\]+\{\r\n$gdb_prompt $" {
setup_xfail "mips-*-irix5*"
fail "$description ended up at odd location"
}

I would the first one to match. It does plenty of times in my
selftest.exp run. The only way I can imagine for that second pattern
to match would be for <space>{, but there shouldn't be a space there,
just a tab - it comes from print_source_lines_base. Any idea what
happened?

If you'd like me to beat the testcase into submission, please run
"runtest --debug selftest.exp" and send me the dbg.log it generates;
that will include every pattern matching attempt. Or, if you don't
care, I can just check it in and we can worry about it later.
Whichever you prefer :-)