From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28825 invoked by alias); 9 Feb 2020 12:07:33 -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 28806 invoked by uid 89); 9 Feb 2020 12:07:32 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.2 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 09 Feb 2020 12:07:30 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 541ADADE8; Sun, 9 Feb 2020 12:07:28 +0000 (UTC) Subject: Re: [PATCH][gdb/testsuite] Capture many-headers.exp progress and output in gdb.log To: Simon Marchi , gdb-patches@sourceware.org References: <20200206085252.GA2453@delia> <84cdebc1-4bd6-1017-6916-6cbd78b466d7@simark.ca> From: Tom de Vries Message-ID: Date: Sun, 09 Feb 2020 12:07:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <84cdebc1-4bd6-1017-6916-6cbd78b466d7@simark.ca> Content-Type: multipart/mixed; boundary="------------A6DDB8F45D516F046AA43B3B" X-IsSubscribed: yes X-SW-Source: 2020-02/txt/msg00254.txt.bz2 This is a multi-part message in MIME format. --------------A6DDB8F45D516F046AA43B3B Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 225 > This leaves a stray OUTPUT file in the build/gdb/testsuite directory. Removed in updated version. > I am fine > with the technique used, but maybe just create some file using standard_output_file? Done. Thanks, - Tom --------------A6DDB8F45D516F046AA43B3B Content-Type: text/x-patch; charset=UTF-8; name="0001-gdb-testsuite-Capture-many-headers.exp-progress-and-output-in-gdb.log.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename*0="0001-gdb-testsuite-Capture-many-headers.exp-progress-and-out"; filename*1="put-in-gdb.log.patch" Content-length: 2260 [gdb/testsuite] Capture many-headers.exp progress and output in gdb.log When running test-case gdb.base/many-headers.exp, we have test output on stdout/stderr: ... Running src/gdb/testsuite/gdb.base/many-headers.exp ... [New LWP 759] Core was generated by `outputs/gdb.base/many-headers/many'. Program terminated with signal SIGSEGV, Segmentation fault. \#0 0x0000000000400688 in ?? () === gdb Summary === nr of expected passes 1 ... Furthermore, the only trace in gdb.log that we have of the gdb command issued is: ... PASS: gdb.base/many-headers.exp: read core file ... Fix this by echoing the gdb command in gdb.log, and capturing the command output and pasting it into gdb.log: ... ( ulimit -s 4096; \ gdb -nw -nx -data-directory data-directory -batch -core=many-headers.core ) [New LWP 1542] Core was generated by `many'. Program terminated with signal SIGSEGV, Segmentation fault. \#0 0x0000000000400688 in ?? () PASS: gdb.base/many-headers.exp: read core file ... Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2020-02-06 Tom de Vries * gdb.base/many-headers.exp: Echo gdb command to gdb.log. Capture gdb command output and paste it into gdb.log. If any, paste catch message to gdb.log. --- gdb/testsuite/gdb.base/many-headers.exp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/gdb/testsuite/gdb.base/many-headers.exp b/gdb/testsuite/gdb.base/many-headers.exp index dc7f8675b8..eb177d1d82 100644 --- a/gdb/testsuite/gdb.base/many-headers.exp +++ b/gdb/testsuite/gdb.base/many-headers.exp @@ -51,17 +51,26 @@ if { "$msg" != "" } { return -1 } +set cmd \ + [concat \ + "(" \ + "ulimit -s $stack_limit;" \ + "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS -batch -core=$corefile" \ + ")"] +verbose -log $cmd + # Run gdb with stack limit +set output [standard_output_file OUTPUT] catch { - system [concat \ - "(" \ - "ulimit -s $stack_limit;" \ - "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS -batch -core=$corefile" \ - ")"] + system "$cmd > $output 2>&1" } msg +verbose -log [exec cat $output] +file delete $output + set test "read core file" if { "$msg" == "" } { pass "$test" } else { + verbose -log $msg fail "$test" } --------------A6DDB8F45D516F046AA43B3B--