public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
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:55:00 -0000	[thread overview]
Message-ID: <bdef50d2-67dd-10e9-fde6-ac40775f31bd@redhat.com> (raw)
In-Reply-To: <9c64bb67-3917-92b7-dae5-3a14c4879d6c@redhat.com>

On 10/17/2017 03:40 PM, Pedro Alves wrote:
> On 10/17/2017 03:34 PM, Pedro Alves wrote:
> 
>> Wait, is your build of GDB an optimized build?  Maybe the compiler
>> managed to inline captured_command_loop for you?  Currnetly, when
>> GDB stops for an inline breakpoint, it stops at the stack caller,
>> which would explain this.
> 
> Yup, I can reproduce this with:
> 
> $ rm -f main.o && make CXXFLAGS="-g3 -O2"
> $ make check TESTS="*/complaints.exp"
> [...]
> Running src/gdb/testsuite/gdb.gdb/complaints.exp ...
> FAIL: gdb.gdb/complaints.exp: run until breakpoint at captured_command_loop
> WARNING: Couldn't test self

Ah, and in addition to the wrong function hit, I do also see
the prompt issue then.  Here's what I just saw in a manual run:

(top-gdb) b captured_command_loop
Breakpoint 3 at 0x71ee60: file src/gdb/main.c, line 324.
(top-gdb) r
Starting program: build/gdb/gdb -data-directory=data-directory
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffed131700 (LWP 4358)]
[New Thread 0x7fffec930700 (LWP 4359)]
[New Thread 0x7fffec12f700 (LWP 4360)]
[New Thread 0x7fffeb92e700 (LWP 4361)]
[New Thread 0x7fffeb12d700 (LWP 4362)]
[New Thread 0x7fffea92c700 (LWP 4363)]
[New Thread 0x7fffea12b700 (LWP 4364)]
GNU gdb (GDB) 8.0.50.20171017-git
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb)                  <<<<<< PROMPT HERE
Thread 1 "gdb" hit Breakpoint 3, captured_main (data=<optimized out>) at src/gdb/main.c:1147
1147              captured_command_loop ();
(top-gdb) 

Note the "PROMPT HERE" line.

So indeed, that inferior gdb prompt can confuse gdb_test_multiple.
That prompt is only output in optimized builds, because in that
case, due to inlining, the breakpoint happens to trigger _after_
captured_command_loop prints the prompt...  In non-optimized builds,
the prompt is _not_ output.

Thanks,
Pedro Alves

  reply	other threads:[~2017-10-17 14:55 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
2017-10-17 14:34   ` Pedro Alves
2017-10-17 14:40     ` Pedro Alves
2017-10-17 14:55       ` Pedro Alves [this message]
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=bdef50d2-67dd-10e9-fde6-ac40775f31bd@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).