From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24763 invoked by alias); 8 Sep 2011 14:59:17 -0000 Received: (qmail 24750 invoked by uid 22791); 8 Sep 2011 14:59:15 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=BAYES_00 X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 08 Sep 2011 14:58:58 +0000 Received: from nat-dem.mentorg.com ([195.212.93.2] helo=eu2-mail.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1R1g49-0001q5-Dm from pedro_alves@mentor.com ; Thu, 08 Sep 2011 07:58:57 -0700 Received: from scottsdale.localnet ([172.16.63.104]) by eu2-mail.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Thu, 8 Sep 2011 16:58:55 +0200 From: Pedro Alves To: Jan Kratochvil Subject: Re: Running testsuite with /proc/sys/kernel/core_uses_pid set, avoiding leaving core dump files behind Date: Thu, 08 Sep 2011 15:25:00 -0000 User-Agent: KMail/1.13.6 (Linux/2.6.38-11-generic; KDE/4.7.0; x86_64; ; ) Cc: gdb-patches@sourceware.org References: <201109071718.38581.pedro@codesourcery.com> <201109081515.15752.pedro@codesourcery.com> <20110908143311.GA19256@host1.jankratochvil.net> In-Reply-To: <20110908143311.GA19256@host1.jankratochvil.net> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201109081558.53929.pedro@codesourcery.com> X-IsSubscribed: yes 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 X-SW-Source: 2011-09/txt/msg00136.txt.bz2 On Thursday 08 September 2011 15:33:11, Jan Kratochvil wrote: > On Thu, 08 Sep 2011 16:15:15 +0200, Pedro Alves wrote: > > On light of that, do you agree? > > I agree. Great, thanks. > On Wed, 07 Sep 2011 18:18:38 +0200, Pedro Alves wrote: > > + -re "process (\[-\]*\[0-9\]*).*$gdb_prompt$" { > > why not just (twice): > + -re "process (-*\[0-9\]*).*$gdb_prompt$" { > Good question. I just copied it from elsewhere, and didn't pay close enough attention -- It could be -? even, but actually, we don't care for negative numbers here. I've removed the match for -. Here's what I applied. Thanks! -- Pedro Alves 2011-09-08 Pedro Alves gdb/testsuite/ * gdb.base/annota1.exp, gdb.base/annota3.exp: Extract the inferior's pid and look for a core dump named core.$pid. Use `remote_file' commands on the host instead of hand coding shell commands on the build. * gdb.base/valgrind-db-attach.exp: Kill the program before finishing the test. --- gdb/testsuite/gdb.base/annota1.exp | 29 ++++++++++++++++---------- gdb/testsuite/gdb.base/annota3.exp | 28 ++++++++++++++++--------- gdb/testsuite/gdb.base/valgrind-db-attach.exp | 3 ++ 3 files changed, 39 insertions(+), 21 deletions(-) Index: src/gdb/testsuite/gdb.base/annota1.exp =================================================================== --- src.orig/gdb/testsuite/gdb.base/annota1.exp 2011-09-07 19:03:17.000000000 +0100 +++ src/gdb/testsuite/gdb.base/annota1.exp 2011-09-08 15:48:56.567212655 +0100 @@ -392,6 +392,17 @@ gdb_test_multiple "next" "breakpoint ign } } +# Get the inferior's PID for later. + +set test "get inferior pid" +set pid -1 +gdb_test_multiple "info inferior 1" "$test" { + -re "process (\[0-9\]*).*$gdb_prompt$" { + set pid $expect_out(1,string) + pass "$test" + } +} + # # Send a signal that is not handled; test: # annotate-signalled @@ -422,21 +433,17 @@ if [target_info exists gdb,nosignals] { } } - # Check for production of a core file and remove it! -set exec_output [remote_exec build "ls core"] - set test "cleanup core file" -if [ regexp "core not found" $exec_output] { - pass "$test (not dumped)" +if { [remote_file host exists core] } { + remote_file host delete core + pass "$test (removed)" +} elseif { $pid != -1 && [remote_file host exists core.$pid] } { + remote_file host delete core.$pid + pass "$test (removed)" } else { - if [ regexp "No such file or directory" $exec_output] { - pass "$test (not dumped)" - } else { - remote_exec build "rm -f core" - pass "$test (removed)" - } + pass "$test (not dumped)" } proc thread_test {} { Index: src/gdb/testsuite/gdb.base/annota3.exp =================================================================== --- src.orig/gdb/testsuite/gdb.base/annota3.exp 2011-09-07 19:03:17.000000000 +0100 +++ src/gdb/testsuite/gdb.base/annota3.exp 2011-09-08 15:48:56.567212655 +0100 @@ -365,6 +365,17 @@ gdb_expect_list "breakpoint ignore count "\r\n\032\032stopped\r\n" } +# Get the inferior's PID for later. + +set test "get inferior pid" +set pid -1 +gdb_test_multiple "info inferior 1" "$test" { + -re "process (\[0-9\]*).*$gdb_prompt$" { + set pid $expect_out(1,string) + pass "$test" + } +} + # # Send a signal that is not handled # @@ -396,18 +407,15 @@ if [target_info exists gdb,nosignals] { # Check for production of a core file and remove it! -set exec_output [remote_exec build "ls core"] - set test "cleanup core file" -if [ regexp "core not found" $exec_output] { - pass "$test (not dumped)" +if { [remote_file host exists core] } { + remote_file host delete core + pass "$test (removed)" +} elseif { $pid != -1 && [remote_file host exists core.$pid] } { + remote_file host delete core.$pid + pass "$test (removed)" } else { - if [ regexp "No such file or directory" $exec_output] { - pass "$test (not dumped)" - } else { - remote_exec build "rm -f core" - pass "$test (removed)" - } + pass "$test (not dumped)" } # restore the original prompt for the rest of the testsuite Index: src/gdb/testsuite/gdb.base/valgrind-db-attach.exp =================================================================== --- src.orig/gdb/testsuite/gdb.base/valgrind-db-attach.exp 2011-09-07 19:03:17.000000000 +0100 +++ src/gdb/testsuite/gdb.base/valgrind-db-attach.exp 2011-09-07 19:11:59.394340911 +0100 @@ -83,3 +83,6 @@ gdb_test_no_output "set height 0" gdb_test_no_output "set width 0" gdb_test "bt" "in main \\(.*\\) at .*${srcfile}:$double_free" + +# Explicitly kill the program so it doesn't dump core when we quit->detach. +gdb_test "kill" "" "kill program" "Kill the program being debugged.*y or n. $" "y"