From: Pedro Alves <palves@redhat.com>
To: Ulrich Weigand <uweigand@de.ibm.com>, gdb-patches@sourceware.org
Subject: Re: Sporadic failures of selftest tests
Date: Tue, 17 Oct 2017 14:25:00 -0000 [thread overview]
Message-ID: <7e8c90cf-c12b-0095-16e5-3dcae94aff6f@redhat.com> (raw)
In-Reply-To: <20171017140032.2D8AAD807C2@oc3748833570.ibm.com>
On 10/17/2017 03:00 PM, Ulrich Weigand wrote:
> Hello,
>
> I'm now seeing sporadic failures of some of the self-test test cases
> running natively on x64_86. A failing case looks like:
>
> (gdb) break captured_command_loop
> Breakpoint 1 at 0x7117b0: file ../../binutils-gdb/gdb/main.c, line 324.
> (gdb) PASS: gdb.gdb/complaints.exp: breakpoint in captured_command_loop
[...]
> Type "apropos word" to search for commands related to "word".
> (gdb)
> Breakpoint 1, captured_main (data=0x7fffffffd2e0) at ../../binutils-gdb/gdb/main.c:1147
> 1147 captured_command_loop ();
> (gdb) XFAIL: gdb.gdb/complaints.exp: run until breakpoint at captured_command_loop (line numbers scrambled?)
>
> Just from reading the logs this looks like the gdb_test_multiple in selftest_setup
> gets the GDB prompt from the inferior GDB and assumes it comes from the outer GDB.
I don't think so. "captured_main" is a function in the inferior
GDB, so that's the superior gdb's prompt. I.e., the test ran
the inferior GDB to main, well before the inferior GDB could print
a prompt.
> Pedro, I'm not sure if this may have anything to do with your recent testsuite
> changes, but I didn't see any other obvious candidates in the logs either :-)
This one kind of looks related:
commit bf4692711232eb96cd840f96d88897a2746d8190
Author: Pedro Alves <palves@redhat.com>
AuthorDate: Tue Oct 10 16:45:50 2017 +0100
Eliminate catch_errors
which did:
--- a/gdb/testsuite/lib/selftest-support.exp
+++ b/gdb/testsuite/lib/selftest-support.exp
@@ -88,10 +88,10 @@ proc selftest_setup { executable function } {
set description "run until breakpoint at $function"
gdb_test_multiple "run $INTERNAL_GDBFLAGS" "$description" {
- -re "Starting program.*Breakpoint \[0-9\]+,.*$function .data.* at .*main.c:.*$gdb_prompt $" {
+ -re "Starting program.*Breakpoint \[0-9\]+,.*$function \\(\\).* at .*main.c:.*$gdb_prompt $" {
pass "$description"
}
- -re "Starting program.*Breakpoint \[0-9\]+,.*$function .data.*$gdb_prompt $" {
+ -re "Starting program.*Breakpoint \[0-9\]+,.*$function \\(\\).*$gdb_prompt $" {
xfail "$description (line numbers scrambled?)"
}
-re "Starting program.*Breakpoint \[0-9\]+,.* at .*main.c:.*$function.*$gdb_prompt $" {
while above in your log, we still see that the test stopped
in the captured_main function, which has a data parameter:
> Breakpoint 1, captured_main (data=0x7fffffffd2e0) at ../../binutils-gdb/gdb/main.c:1147
However, that means GDB stopped in the totally wrong function, so likely
it'd have failed before too.
Now the question should be why did GDB stop there, when breakpoint 1
was supposedly set on captured_command_loop ?
> (gdb) break captured_command_loop
> Breakpoint 1 at 0x7117b0: file ../../binutils-gdb/gdb/main.c, line 324.
> (gdb) PASS: gdb.gdb/complaints.exp: breakpoint in captured_command_loop
...
> (gdb)
> Breakpoint 1, captured_main (data=0x7fffffffd2e0) at ../../binutils-gdb/gdb/main.c:1147
> 1147 captured_command_loop ();
That seems to be the root of the problem.
I wonder whether that's somehow related to the other Power regression
Simon reported:
https://sourceware.org/ml/gdb-patches/2017-10/msg00444.html
I haven't managed to investigate that one.
Does it reproduce easily for you? If so, I'd suggest a git bisect to
find the culprit.
> Have you see this issue before? How is this supposed to work in the first place?
> Is there anything that would allow the testsuite to distinguish the gdb prompts
> emitted by the two GDBs?
The selftests that need to distinguish the prompts do "set prompt (xgdb)" to
change one the prompt of one of the gdb's. But that's a red herring in this case.
Thanks,
Pedro Alves
next prev parent reply other threads:[~2017-10-17 14:25 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-17 14:00 Ulrich Weigand
2017-10-17 14:25 ` Pedro Alves [this message]
2017-10-17 14:34 ` Pedro Alves
2017-10-17 14:40 ` Pedro Alves
2017-10-17 14:55 ` Pedro Alves
2017-10-17 15:48 ` Ulrich Weigand
2017-10-17 15:54 ` Pedro Alves
2017-10-17 16:12 ` Pedro Alves
2017-10-20 12:51 ` Ulrich Weigand
2017-10-20 14:32 ` Pedro Alves
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=7e8c90cf-c12b-0095-16e5-3dcae94aff6f@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=uweigand@de.ibm.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).