From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13803 invoked by alias); 11 Feb 2011 15:28:45 -0000 Received: (qmail 13795 invoked by uid 22791); 11 Feb 2011 15:28:44 -0000 X-SWARE-Spam-Status: No, hits=-6.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Feb 2011 15:28:29 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p1BFSSUU004178 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 11 Feb 2011 10:28:28 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p1BFSSMc018435; Fri, 11 Feb 2011 10:28:28 -0500 Received: from [10.15.16.129] (dhcp-10-15-16-129.yyz.redhat.com [10.15.16.129]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p1BFSRj6018923; Fri, 11 Feb 2011 10:28:27 -0500 Message-ID: <4D55559B.1090004@redhat.com> Date: Fri, 11 Feb 2011 15:28:00 -0000 From: sami wagiaalla User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc14 Lightning/1.0b2 Thunderbird/3.1.7 MIME-Version: 1.0 To: Jan Kratochvil CC: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [patch] Support inferior events in python References: <4D39FFFD.80304@redhat.com> <4D49C69A.20401@redhat.com> <4D4ADA8A.40507@redhat.com> <4D4C5C4D.4070708@redhat.com> <20110209075531.GA24847@host1.dyn.jankratochvil.net> <4D52BE89.2040807@redhat.com> <20110209163022.GA16069@host1.dyn.jankratochvil.net> In-Reply-To: <20110209163022.GA16069@host1.dyn.jankratochvil.net> Content-Type: multipart/mixed; boundary="------------060003000207020903030609" 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-02/txt/msg00211.txt.bz2 This is a multi-part message in MIME format. --------------060003000207020903030609 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 736 On 02/09/2011 11:30 AM, Jan Kratochvil wrote: > On Wed, 09 Feb 2011 17:19:21 +0100, sami wagiaalla wrote: >> Hmm... I thought I fixed that by avoiding checking for the prompt. > > I also find that one incorrect but I do not have a FAIL reproducer for it. > Yeah, the prompt is unreliable when non-stop is on. >> I can't reproduce the problem > > Reproducible for me in 90% of runs on Fedora 14 i386 (not x86_64). > I could not reproduce it still, but the problem seems obvious now. The bad pointer which was supposed to cause the SIGSEGV was not initialized. I also added a breakpoint at the end of main to make sure that main waits for the signal to be delivered and not exit. Just in case. Please try the attached patch. Sami --------------060003000207020903030609 Content-Type: text/x-patch; name="signal_test.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="signal_test.patch" Content-length: 3342 Move signal test into its own file. Initialize bad pointer. 2011-02-11 Sami Wagiaalla * gdb.python/py-evsignal.exp: New file. * gdb.python/py-evthreads.cc: Initialize bad pointer to NULL. diff --git a/gdb/testsuite/gdb.python/py-evsignal.exp b/gdb/testsuite/gdb.python/py-evsignal.exp new file mode 100644 index 0000000..6fbe033 --- /dev/null +++ b/gdb/testsuite/gdb.python/py-evsignal.exp @@ -0,0 +1,55 @@ +# Copyright (C) 2010, 2011 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# This file is part of the GDB testsuite. It tests Python-based +# pretty-printing for the CLI. + +# Skip all tests if Python scripting is not enabled. + +if $tracelevel then { + strace $tracelevel +} + +load_lib gdb-python.exp + +set testfile "py-evthreads" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} +set pyfile ${srcdir}/${subdir}/py-events.py + +gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings} +clean_restart $testfile + +if { [skip_python_tests] } { continue } + +gdb_test_no_output "python execfile ('${pyfile}')" "" + +gdb_test "Test_Events" "Event testers registered." +gdb_test_no_output "set non-stop on" +gdb_test_no_output "set target-async on" + +gdb_breakpoint [gdb_get_line_number "end of main"] + +send_gdb "run\n" +gdb_expect { + -re ".*stop reason: signal.* +.*stop signal: SIGSEGV.* +.*thread num: 3.*" { + pass "thread 3 was signalled" + } + timeout { + fail "thread 3 was not signalled" + } +} diff --git a/gdb/testsuite/gdb.python/py-evthreads.c b/gdb/testsuite/gdb.python/py-evthreads.c index 1464ce6..55414ed 100644 --- a/gdb/testsuite/gdb.python/py-evthreads.c +++ b/gdb/testsuite/gdb.python/py-evthreads.c @@ -28,7 +28,7 @@ void* thread3 (void* d) int count3 = 0; count3++; - int *bad; + int *bad = NULL; *bad = 1; return NULL; @@ -46,10 +46,10 @@ int main (){ pthread_create (&thread2_id, NULL, thread2, NULL); pthread_create (&thread3_id, NULL, thread3, NULL); - int count1 = 0; // stop1 + int count1 = 0; count1++; pthread_join (thread2_id, NULL); pthread_join (thread3_id, NULL); - return 12; + return 12; // end of main } diff --git a/gdb/testsuite/gdb.python/py-evthreads.exp b/gdb/testsuite/gdb.python/py-evthreads.exp index 6ea7eb4..957d345 100644 --- a/gdb/testsuite/gdb.python/py-evthreads.exp +++ b/gdb/testsuite/gdb.python/py-evthreads.exp @@ -106,14 +106,3 @@ gdb_expect { } } -send_gdb "continue -a\n" -gdb_expect { - -re ".*stop reason: signal.* -.*stop signal: SIGSEGV.* -.*thread num: 3.*" { - pass "thread 3 was signalled" - } - timeout { - fail "thread 3 was not signalled" - } -} --------------060003000207020903030609--