From 2992cbe0202e3b2fb79ecc49880c27cff3bcba11 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Thu, 4 Sep 2008 00:51:04 +0000 Subject: [PATCH] * gdb.base/value-double-free.exp: Respect gdb,no_hardware_watchpoints. * gdb.base/watchpoint-solib.exp: Likewise. Update tests to handle software watchpoints. * gdb.base/watch_thread_num.exp: Likewise. --- gdb/testsuite/ChangeLog | 7 +++++++ gdb/testsuite/gdb.base/value-double-free.exp | 6 ++++++ gdb/testsuite/gdb.base/watch_thread_num.exp | 16 ++++++++-------- gdb/testsuite/gdb.base/watchpoint-solib.exp | 7 ++++++- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d17e9ca..827c9f9 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2008-09-03 Ulrich Weigand + + * gdb.base/value-double-free.exp: Respect gdb,no_hardware_watchpoints. + * gdb.base/watchpoint-solib.exp: Likewise. Update tests to handle + software watchpoints. + * gdb.base/watch_thread_num.exp: Likewise. + 2008-09-03 Aleksandar Ristovski * gdb.arch/i386-bp_permanent.exp: New test. diff --git a/gdb/testsuite/gdb.base/value-double-free.exp b/gdb/testsuite/gdb.base/value-double-free.exp index 8494f53..7bd53a9 100644 --- a/gdb/testsuite/gdb.base/value-double-free.exp +++ b/gdb/testsuite/gdb.base/value-double-free.exp @@ -31,6 +31,12 @@ gdb_load ${binfile} if ![runto_main] { return -1 } + +# Disable hardware watchpoints if necessary. +if [target_info exists gdb,no_hardware_watchpoints] { + gdb_test "set can-use-hw-watchpoints 0" "" "" +} + gdb_test "watch var" "atchpoint \[0-9\]+: var" gdb_test "continue" "atchpoint \[0-9\]+: var.*Old value = 0.*New value = \[12\].*" gdb_test "print empty()" " = void" diff --git a/gdb/testsuite/gdb.base/watch_thread_num.exp b/gdb/testsuite/gdb.base/watch_thread_num.exp index be8ed48..a76609b 100644 --- a/gdb/testsuite/gdb.base/watch_thread_num.exp +++ b/gdb/testsuite/gdb.base/watch_thread_num.exp @@ -47,6 +47,11 @@ if { ![runto main] } then { return } +# Disable hardware watchpoints if necessary. +if [target_info exists gdb,no_hardware_watchpoints] { + gdb_test "set can-use-hw-watchpoints 0" "" "" +} + gdb_test "watch shared_var thread 0" "Unknown thread 0\." "Watchpoint on invalid thread" gdb_test "watch shared_var thread" "A syntax error in expression, near `thread'\." "Invalid watch syntax" @@ -67,19 +72,14 @@ gdb_expect { set thread_num "$expect_out(1,string)" gdb_test "disable 2" "" "Disable breakpoint 2" -gdb_test "watch shared_var thread $thread_num" "Hardware watchpoint 3: shared_var" "Watchpoint on shared variable" +gdb_test "watch shared_var thread $thread_num" "atchpoint 3: shared_var" "Watchpoint on shared variable" gdb_test "info breakpoint 3" "stop only in thread $thread_num" for {set i 1} {$i <= 10} {incr i 1} { set watchpoint "Watchpoint triggered iteration $i" set check "Check thread that triggered iteration $i" - if {[target_info exists gdb,no_hardware_watchpoints]} { - unsupported $watchpoint - unsupported $check - } else { - gdb_test "continue" "Hardware watchpoint 3: shared_var.*" $watchpoint - gdb_test "thread" ".*Current thread is $thread_num .*" $check - } + gdb_test "continue" "atchpoint 3: shared_var.*" $watchpoint + gdb_test "thread" ".*Current thread is $thread_num .*" $check } diff --git a/gdb/testsuite/gdb.base/watchpoint-solib.exp b/gdb/testsuite/gdb.base/watchpoint-solib.exp index f883f91..6494b58 100644 --- a/gdb/testsuite/gdb.base/watchpoint-solib.exp +++ b/gdb/testsuite/gdb.base/watchpoint-solib.exp @@ -69,6 +69,11 @@ if [target_info exists gdb_stub] { runto_main +# Disable hardware watchpoints if necessary. +if [target_info exists gdb,no_hardware_watchpoints] { + gdb_test "set can-use-hw-watchpoints 0" "" "" +} + # Test that if we set a watchpoint on a global variable # in a explicitly loaded shared library, and then # re-run the application, gdb does not crash. @@ -79,7 +84,7 @@ gdb_test_multiple "break foo" "set pending breakpoint" { } gdb_test "continue" ".*Breakpoint 2.*foo.*" "continue to foo" -gdb_test "watch g" "Hardware watchpoint 3: g" "set watchpoint on g" +gdb_test "watch g" "atchpoint 3: g" "set watchpoint on g" gdb_test "continue" ".*New value = 1.*" "continue to watchpoint hit" rerun_to_main gdb_test "continue" ".*Breakpoint 2.*foo.*" "continue to foo again" -- 2.7.4