From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 117812 invoked by alias); 17 Oct 2017 14:55:29 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 117803 invoked by uid 89); 17 Oct 2017 14:55:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.2 spammy=PROMPT X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 17 Oct 2017 14:55:27 +0000 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 311C33B73A; Tue, 17 Oct 2017 14:55:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 311C33B73A Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=palves@redhat.com Received: from [127.0.0.1] (ovpn04.gateway.prod.ext.ams2.redhat.com [10.39.146.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8B9C77800C; Tue, 17 Oct 2017 14:55:25 +0000 (UTC) Subject: Re: Sporadic failures of selftest tests To: Ulrich Weigand , gdb-patches@sourceware.org References: <20171017140032.2D8AAD807C2@oc3748833570.ibm.com> <7e8c90cf-c12b-0095-16e5-3dcae94aff6f@redhat.com> <39dde79f-2540-6718-8fab-e65b159fdf9f@redhat.com> <9c64bb67-3917-92b7-dae5-3a14c4879d6c@redhat.com> From: Pedro Alves Message-ID: Date: Tue, 17 Oct 2017 14:55:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <9c64bb67-3917-92b7-dae5-3a14c4879d6c@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2017-10/txt/msg00529.txt.bz2 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 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: . Find the GDB manual and other documentation resources online at: . 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=) 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