From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3837 invoked by alias); 26 Apr 2010 11:24:17 -0000 Received: (qmail 3812 invoked by uid 22791); 26 Apr 2010 11:24:15 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=BAYES_00,MSGID_MULTIPLE_AT X-Spam-Check-By: sourceware.org Received: from mailhost.u-strasbg.fr (HELO mailhost.u-strasbg.fr) (130.79.200.154) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 26 Apr 2010 11:24:09 +0000 Received: from baal.u-strasbg.fr (baal.u-strasbg.fr [IPv6:2001:660:2402::41]) by mailhost.u-strasbg.fr (8.14.3/jtpda-5.5pre1) with ESMTP id o3QBNfcc080990 ; Mon, 26 Apr 2010 13:23:41 +0200 (CEST) (envelope-from pierre.muller@ics-cnrs.unistra.fr) Received: from mailserver.u-strasbg.fr (ms2.u-strasbg.fr [IPv6:2001:660:2402:d::11]) by baal.u-strasbg.fr (8.14.0/jtpda-5.5pre1) with ESMTP id o3QBNejs033051 ; Mon, 26 Apr 2010 13:23:40 +0200 (CEST) (envelope-from pierre.muller@ics-cnrs.unistra.fr) Received: from d620muller (gw-ics.u-strasbg.fr [130.79.210.225]) (user=mullerp mech=LOGIN) by mailserver.u-strasbg.fr (8.14.3/jtpda-5.5pre1) with ESMTP id o3QBNdQV006843 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) ; Mon, 26 Apr 2010 13:23:40 +0200 (CEST) (envelope-from pierre.muller@ics-cnrs.unistra.fr) From: "Pierre Muller" To: "'Joel Brobecker'" Cc: "'Pedro Alves'" , References: <000301cae303$d6d068b0$84713a10$@muller@ics-cnrs.unistra.fr> <20100423172933.GO19194@adacore.com> <201004231915.49375.pedro@codesourcery.com> <002101cae3c0$a56276c0$f0276440$@muller@ics-cnrs.unistra.fr> <20100425132041.GA2732@adacore.com> In-Reply-To: <20100425132041.GA2732@adacore.com> Subject: [RFA- v3] Testcase for bug report 11531 and fix for Solaris Date: Mon, 26 Apr 2010 11:24:00 -0000 Message-ID: <004e01cae532$f09f07c0$d1dd1740$@muller@ics-cnrs.unistra.fr> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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: 2010-04/txt/msg00858.txt.bz2 Following Pedro's and Joel's comments I simplified my test for bug report 11531 and used Joel's comment about the use of 'delete_breakpoints' command. I made the test to also succeed in case a software watchpoint is used. Is this OK? Pierre 2010-04-24 Pierre Muller PR breakpoints/11531. * testsuite/gdb.base/gdb11531.c: New file. * testsuite/gdb.base/gdb11531.exp: New file. Index: testsuite/gdb.base/gdb11531.c =================================================================== RCS file: testsuite/gdb.base/gdb11531.c diff -N testsuite/gdb.base/gdb11531.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ testsuite/gdb.base/gdb11531.c 26 Apr 2010 11:19:43 -0000 @@ -0,0 +1,40 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2010 Free Software Foundation, Inc. + + Contributed by Pierre Muller. + + 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 . + + Test for Solaris specific watchpoint problem. */ + +struct rec +{ + int x; + double y; + int z; +}; + +static struct rec myrec; + +int +main () +{ + myrec.x = 5; + myrec.y = 3.4; + myrec.z = 56; + myrec.x = 78; + return myrec.x; +} + Index: testsuite/gdb.base/gdb11531.exp =================================================================== RCS file: testsuite/gdb.base/gdb11531.exp diff -N testsuite/gdb.base/gdb11531.exp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ testsuite/gdb.base/gdb11531.exp 26 Apr 2010 11:19:43 -0000 @@ -0,0 +1,64 @@ +# This testcase is part of GDB, the GNU debugger. + +# Copyright 2010 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 . + +# Test GDB ibug report 11531. +# This is a problem related to CANNOT_STEP_HW_WATCHPOINTS macro. +# It affects Solaris native targets. + +if $tracelevel then { + strace $tracelevel +} + +set prms_id 0 +set bug_id 0 + +set testfile "gdb11531" + +if { [prepare_for_testing $testfile.exp $testfile $testfile.c {debug}] } { + return -1; +} + + +if { ![runto main] } then { + fail "run to main" + return +} + +# The breakpoint is probably at the instruction where the value being +# watched (myrec.x) gets updated. This is the instruction where we +# expect to receive a watchpoint notification when we do the "stepi" +# below. However, having the breakpoint at the same location as this +# intruction can possibly interfere with our testcase, as stepping +# over the breakpoint in order to get past it may incorrectly lead +# to the debugger missing the watchpoint hit. This would be a bug +# in GDB, but this is not the bug that we are trying to test here. +# So, we remove all breakpoints first. + +delete_breakpoints + +set nl "\[\r\n\]+" + +gdb_test "watch myrec.x" ".*atchpoint \[0-9\]+: myrec\.x" "Set watchpoint" + +gdb_test "next" \ + ".*${nl}.*atchpoint \[0-9\]+: myrec\.x${nl}Old value = 0${nl}New value = 5${nl}.*" \ + "watchpoint variable triggers at next" + +gdb_test "continue" \ + ".*${nl}.*atchpoint \[0-9\]+: myrec\.x${nl}Old value = 5${nl}New value = 78${nl}.*" \ + "watchpoint variable triggers at continue" +