public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: John Baldwin <jhb@freebsd.org>
To: Pedro Alves <palves@redhat.com>
Cc: Yao Qi <qiyaoltc@gmail.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH v3] Add a 'starti' command.
Date: Wed, 15 Nov 2017 23:32:00 -0000	[thread overview]
Message-ID: <5866637.KqDYZAFHHe@ralph.baldwin.cx> (raw)
In-Reply-To: <dc20d6ec-d6ef-b482-5a9a-26bbf98c4c01@redhat.com>

On Wednesday, November 15, 2017 08:23:41 PM Pedro Alves wrote:
> On 11/15/2017 08:11 PM, John Baldwin wrote:
> > On Friday, November 03, 2017 01:00:18 PM Yao Qi wrote:
> >> John Baldwin <jhb@FreeBSD.org> writes:
> >>
> >>> +# Continue to the start of main().  The constructor should have run so
> >>> +# 'x' should be 1.
> >>> +
> >>> +gdb_breakpoint main
> >>> +gdb_test_sequence "continue" "" {
> >>> +    "\\$2 = 1"
> >>> +    ".*Breakpoint .*main \\(\\) at .*starti.c.*"
> >>
> >> Here is a test failure, captured by buildbot,
> >> https://sourceware.org/ml/gdb-testers/2017-q3/msg04381.html
> >>
> >> (gdb) gdb_expect_list pattern: /\$2 = 1/
> >> continue^M
> >> Continuing.^M
> >> $2 = 1^M
> >> gdb_expect_list pattern: /.*Breakpoint .*main \(\) at .*starti.c.*/
> >> ^M
> >> Breakpoint 1, Python Exception <type 'exceptions.NameError'> Installation error: gdb.execute_unwinders function is missing: ^M
> >> main () at /home/yao/SourceCode/gnu/gdb/git/gdb/testsuite/gdb.base/starti.c:29^M
> >> 29        return 0;^M
> >> (gdb) gdb_expect_list pattern: //
> >> FAIL: gdb.base/starti.exp: continue (pattern 3 + sentinel) (timeout)
> >>
> >> Can you take a look?
> > 
> > Hmm, so it seems the python exception adds a newline which throws the regex
> > match off as 'main \(\)' is now on a second line.  The 'start.exp' test
> > only looks for the 'main' bit and not the preceding 'Breakpoint', so
> > something like this instead?
> 
> But is the Python exception expected?  From Yao's earlier paste:
> 
>  (gdb) gdb_expect_list pattern: /\$2 = 1/
>  continue^M
>  Continuing.^M
>  $2 = 1^M
>  gdb_expect_list pattern: /.*Breakpoint .*main \(\) at .*starti.c.*/
>  ^M
>  Breakpoint 1, Python Exception <type 'exceptions.NameError'> Installation error: gdb.execute_unwinders function is missing: ^M
>  main () at /home/yao/SourceCode/gnu/gdb/git/gdb/testsuite/gdb.base/starti.c:29^M
>  29        return 0;^M
>  (gdb) gdb_expect_list pattern: //
>  FAIL: gdb.base/starti.exp: continue (pattern 3 + sentinel) (timeout)
> 
> "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.

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.)

-- 
John Baldwin

  reply	other threads:[~2017-11-15 23:32 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-11 22:08 John Baldwin
2017-09-18 23:15 ` John Baldwin
2017-09-19 14:35 ` Pedro Alves
2017-09-19 18:23   ` John Baldwin
2017-09-19 18:29     ` Pedro Alves
2017-11-03 13:00 ` Yao Qi
2017-11-15 20:11   ` John Baldwin
2017-11-15 20:23     ` Pedro Alves
2017-11-15 23:32       ` John Baldwin [this message]
2017-11-16 10:54         ` Pedro Alves
2017-11-16 12:38           ` [pushed] Fix gdb.base/starti.exp racy test (Re: [PATCH v3] Add a 'starti' command.) Pedro Alves
2017-11-16 18:00             ` John Baldwin
2017-11-16 18:15               ` Pedro Alves
2017-11-16  9:55       ` [PATCH v3] Add a 'starti' command Yao Qi

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=5866637.KqDYZAFHHe@ralph.baldwin.cx \
    --to=jhb@freebsd.org \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    --cc=qiyaoltc@gmail.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).