From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14445 invoked by alias); 17 Aug 2009 19:46:37 -0000 Received: (qmail 14431 invoked by uid 22791); 17 Aug 2009 19:46:37 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mx2.redhat.com (HELO mx2.redhat.com) (66.187.237.31) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 17 Aug 2009 19:46:29 +0000 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n7HJkR5q014089 for ; Mon, 17 Aug 2009 15:46:27 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n7HJkRIK017341 for ; Mon, 17 Aug 2009 15:46:27 -0400 Received: from host0.dyn.jankratochvil.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n7HJkPHu006395 for ; Mon, 17 Aug 2009 15:46:26 -0400 Received: from host0.dyn.jankratochvil.net (localhost [127.0.0.1]) by host0.dyn.jankratochvil.net (8.14.3/8.14.3) with ESMTP id n7HJkOTd002734 for ; Mon, 17 Aug 2009 21:46:24 +0200 Received: (from jkratoch@localhost) by host0.dyn.jankratochvil.net (8.14.3/8.14.3/Submit) id n7HJkOTG002733 for gdb-patches@sourceware.org; Mon, 17 Aug 2009 21:46:24 +0200 Date: Mon, 17 Aug 2009 19:46:00 -0000 From: Jan Kratochvil To: gdb-patches@sourceware.org Subject: [patch 3/4] Fix hw watchpoints: remove dead code Message-ID: <20090817194624.GD10694@host0.dyn.jankratochvil.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.19 (2009-01-05) 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: 2009-08/txt/msg00258.txt.bz2 Hi, simple dead code removal. Code would become invalid with the changes anyway. The testcase is in fact unrelated, just I was surprised "hbreak" functionality is currently not regression tested anywhere. Thanks, Jan gdb/ 2009-08-17 Jan Kratochvil * i386-nat.c (i386_stopped_by_hwbp): Remove. gdb/testsuite/ 2009-08-17 Jan Kratochvil * gdb.base/watchpoint-hw.exp: Use prepare_for_testing. Fix test name for "untested". New variable breakline. (hbreak, continue to break-at-exit after hbreak): New tests. --- a/gdb/i386-nat.c +++ b/gdb/i386-nat.c @@ -590,27 +590,6 @@ i386_stopped_by_watchpoint (void) return target_stopped_data_address (¤t_target, &addr); } -/* Return non-zero if the inferior has some break/watchpoint that - triggered. */ - -static int -i386_stopped_by_hwbp (void) -{ - int i; - - dr_status_mirror = i386_dr_low.get_status (); - if (maint_show_dr) - i386_show_dr ("stopped_by_hwbp", 0, 0, hw_execute); - - ALL_DEBUG_REGISTERS(i) - { - if (I386_DR_WATCH_HIT (i)) - return 1; - } - - return 0; -} - /* Insert a hardware-assisted breakpoint at BP_TGT->placed_address. Return 0 on success, EBUSY on failure. */ static int --- a/gdb/testsuite/gdb.base/watchpoint-hw.exp +++ b/gdb/testsuite/gdb.base/watchpoint-hw.exp @@ -21,19 +21,12 @@ if {(![istarget "i?86-*-*"] && ![istarget "x86_64-*-*"] return } -set testfile watchpoint-hw -set srcfile ${testfile}.c -set binfile ${objdir}/${subdir}/${testfile} -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { - untested "Couldn't compile test program" +set test watchpoint-hw +set srcfile ${test}.c +if { [prepare_for_testing ${test}.exp ${test} ${srcfile}] } { return -1 } -gdb_exit -gdb_start -gdb_reinitialize_dir $srcdir/$subdir -gdb_load ${binfile} - # Create the watchpoint before the inferior gets started. Now the native CPU # target is still not active and its `to_can_use_hw_breakpoint' is not # installed, therefore only a software watchpoint gets created. @@ -43,7 +36,7 @@ gdb_test "watch watchee" "atchpoint 1: watchee" # `runto_main' or `runto main' would delete the watchpoint created above. if { [gdb_start_cmd] < 0 } { - untested start + untested ${test}.exp return -1 } gdb_test "" "main .* at .*" "start" @@ -56,11 +49,27 @@ gdb_test "info watchpoints" "1 *hw watchpoint .* watchee" gdb_test "delete 1" gdb_test "rwatch watchee" -gdb_breakpoint [gdb_get_line_number "break-at-exit"] +set breakline [gdb_get_line_number "break-at-exit"] +gdb_breakpoint $breakline gdb_test "continue" "Continuing.\r\nHardware read watchpoint 3: watchee\r\n\r\nValue = 0\r\n.*" # Here should be no repeated notification of the read watchpoint. gdb_test "continue" \ "Continuing\\.\[ \r\n\]+Breakpoint \[0-9\]+, .*break-at-exit.*" \ - "continue to break-at-exit" + "continue to break-at-exit after rwatch" + +clean_restart ${test} + +if ![runto_main] { + untested ${test}.exp + return -1 +} + +gdb_test "hbreak ${srcfile}:${breakline}" \ + "Hardware assisted breakpoint 2 at 0x\[0-9a-f\]+: file .*${srcfile}, line ${breakline}\\." \ + "hbreak" + +gdb_test "continue" \ + "Continuing\\.\[ \r\n\]+Breakpoint \[0-9\]+, .*break-at-exit.*" \ + "continue to break-at-exit after hbreak"