Re: [PATCH v3] Add a 'starti' command.

Pedro Alves
2017-11-16T10:54:02Z

On 11/15/2017 11:31 PM, John Baldwin wrote:
> On Wednesday, November 15, 2017 08:23:41 PM Pedro Alves wrote:
>> On 11/15/2017 08:11 PM, John Baldwin wrote:

>> "Installation error" looks quite odd to me. Why did that happen?
>
> That I don't know. I think I have seen similar exceptions in the past if the
> python scripts were not installed to the shared data directory but python was
> enabled via --with-python. I wouldn't expect a buildbot to be in that
> situation.

Yeah. I don't think we should make the testcase cope with that.

>
> I looked at some of the other failures referenced at the URL and found some
> other results I don't quite understand. For example, for Fedora-x86_64-m32,
> a test run from earlier today passed starti.exp without issues, but the test
> linked above failed differently:
>
> (gdb) gdb_expect_list pattern: /\$2 = 1/
> continue
> Continuing.
> $2 = 1
>
> gdb_expect_list pattern: /.*Breakpoint .*main \(\) at .*starti.c.*/
> Breakpoint 1, main () at /home/gdb-buildbot-2/fedora-x86-64-4/fedora-x86-64-m32/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/starti.c:29
> 29 return 0;
> (gdb) gdb_expect_list pattern: //
> FAIL: gdb.base/starti.exp: continue (pattern 3 + sentinel) (timeout)
> testcase /home/gdb-buildbot-2/fedora-x86-64-4/fedora-x86-64-m32/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/starti.exp completed in 10 seconds
>
> Here the 'Breakpoint' pattern should have matched and it appears that the
> implicit empty pattern used to match the prompt didn't match?
>
> Trying to test the patch I posted earlier today I had an odd failure where
> 'gdb_breakpoint main' failed, but only the first time I ran the test. The
> failure seemed to involve expect missing the line confirming the breakpoint
> was set. Ehen I tried to reproduce this all my other trials of running the
> modified test succeeded. It does look like the Fedora-i686 test from the
> link failed in this way, but the failure doesn't make sense to me. It FAILs
> the setting of the breakpoint before it tries to set the breakpoint:
>
> 0xf7fd5ad0 in _start () from /lib/ld-linux.so.2
> (gdb) PASS: gdb.base/starti.exp: starti
>
> (gdb) FAIL: gdb.base/starti.exp: setting breakpoint at main
> gdb_expect_list pattern: /\$2 = 1/
> break main
> Breakpoint 1 at 0x80483f9: file /home/gdb-buildbot/fedora-x86-64-1/fedora-i686/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/starti.c, line 29.
> (gdb) FAIL: gdb.base/starti.exp: continue (pattern 1)
> gdb_expect_list pattern: /.*Breakpoint .*main \(\) at .*starti.c.*/
> gdb_expect_list pattern: //
> testcase /home/gdb-buildbot/fedora-x86-64-1/fedora-i686/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/starti.exp completed in 0 seconds
>
> (Here it never runs "continue" after setting the breakpoint either, though
> "continue" is the action that has the \$2 = 1 pattern in its list of
> expected responses.)

Sounds like the sort of trouble you'd get if an earlier "(gdb)"
prompt was left in expect's buffer, somehow.

Thanks,
Pedro Alves