This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA] More watchpoint test tweaks
- To: fnasser at redhat dot com, gdb-patches at sourceware dot cygnus dot com
- Subject: [RFA] More watchpoint test tweaks
- From: Michael Snyder <msnyder at cygnus dot com>
- Date: Tue, 17 Oct 2000 17:26:10 -0700 (PDT)
Following on to my last patch, these two tests can benefit from
having hardware watchpoints optionally turned off.
I also replaced some single-letter commands in display.exp
with more verbose ones, because I hate single-letter commands.
They're hard to decypher.
2000-10-17 Michael Snyder <msnyder@cleaver.cygnus.com>
* gdb.base/recurse.exp (proc recurse_test): Optionally disable
hardware watchpoints if un-available.
* gdb.base/display.exp: Ditto. Also replace single-letter
GDB commands with more complete ones (because I hate single-letter
commands and variables).
Refer previous patch:
* gdb.base/watchpoint.exp (proc initialize): This nit allows
default hardware watchpoints to be disabled if appropriate.
(proc test_watchpoint_triggered_in_syscall): Use new gdb.exp
routine gdb_skip_stdio_test.
Index: display.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/display.exp,v
retrieving revision 1.14
diff -c -3 -p -r1.14 display.exp
*** display.exp 2000/01/07 23:10:40 1.14
--- display.exp 2000/10/18 00:21:47
*************** if ![runto_main] then {
*** 70,82 ****
continue
}
! gdb_test "b 14" ".*Breakpoint 2.*" "break do_loops"
! gdb_test "c" ".*Breakpoint 2, do_loops.*" "get to do_loops"
# Create stopping points.
#
! gdb_test "wat sum" ".*\[Ww\]atchpoint 3: sum.*" "set watch"
! gdb_test "b 19" ".*Breakpoint 4.*" "break 19"
# Create displays for those points
#
--- 70,87 ----
continue
}
! # Disable hardware watchpoints if necessary.
! if [target_info exists gdb,no_hardware_watchpoints] {
! gdb_test "set can-use-hw-watchpoints 0" "" ""
! }
!
! gdb_test "break 14" ".*Breakpoint 2.*" "break do_loops"
! gdb_test "cont" ".*Breakpoint 2, do_loops.*" "get to do_loops"
# Create stopping points.
#
! gdb_test "watch sum" ".*\[Ww\]atchpoint 3: sum.*" "set watch"
! gdb_test "break 19" ".*Breakpoint 4.*" "break 19"
# Create displays for those points
#
*************** gdb_test "disp/s &sum" ".*5: x/s &sum $
*** 89,96 ****
# Hit the displays
#
! gdb_test "c" ".*\[Ww\]atchpoint 3: sum.*\[1-9\]*: x/s &sum.*\[1-9\]*: /f sum = 1.40129846e.45\r\n\[1-9\]*: x/i &k.*\r\n\[1-9\]*: /x j = 0x0\r\n\[1-9\]*: i = 0.*" "first disp"
! gdb_test "c" ".*\[Ww\]atchpoint 3: sum.*\[1-9\]*: x/s &sum.*\[1-9\]*: /f sum = 2.80259693e.45\r\n\[1-9\]*: x/i &k.*\r\n\[1-9\]*: /x j = 0x0.*\[1-9\]*: i = 0.*" "second disp"
gdb_test "enab disp 6" ".*No display number 6..*" "catch err"
gdb_test "disab disp 1" ".*" "disab disp 1"
--- 94,101 ----
# Hit the displays
#
! gdb_test "cont" ".*\[Ww\]atchpoint 3: sum.*\[1-9\]*: x/s &sum.*\[1-9\]*: /f sum = 1.40129846e.45\r\n\[1-9\]*: x/i &k.*\r\n\[1-9\]*: /x j = 0x0\r\n\[1-9\]*: i = 0.*" "first disp"
! gdb_test "cont" ".*\[Ww\]atchpoint 3: sum.*\[1-9\]*: x/s &sum.*\[1-9\]*: /f sum = 2.80259693e.45\r\n\[1-9\]*: x/i &k.*\r\n\[1-9\]*: /x j = 0x0.*\[1-9\]*: i = 0.*" "second disp"
gdb_test "enab disp 6" ".*No display number 6..*" "catch err"
gdb_test "disab disp 1" ".*" "disab disp 1"
*************** gdb_test "disab disp 2" ".*" "disab disp
*** 98,106 ****
gdb_test "enab disp 1" ".*" "re-enab"
gdb_test "enab disp 1" ".*" "re-enab of enab"
gdb_test "undisp 5" ".*" "undisp"
! gdb_test "i disp" ".*Auto-display expressions now in effect.*y /f sum.*y /1bi &k.*n /x j.*y i.*" "info disp"
! gdb_test "c" ".*\[Ww\]atch.*4.20389539e-45.*.*i = 0.*" "next hit"
send_gdb "undisp\n"
gdb_expect {
--- 103,111 ----
gdb_test "enab disp 1" ".*" "re-enab"
gdb_test "enab disp 1" ".*" "re-enab of enab"
gdb_test "undisp 5" ".*" "undisp"
! gdb_test "info disp" ".*Auto-display expressions now in effect.*y /f sum.*y /1bi &k.*n /x j.*y i.*" "info disp"
! gdb_test "cont" ".*\[Ww\]atch.*4.20389539e-45.*.*i = 0.*" "next hit"
send_gdb "undisp\n"
gdb_expect {
*************** gdb_expect {
*** 126,132 ****
}
gdb_test "disab 3" ".*.*" "disab 3"
! gdb_test "c" ".*Breakpoint 4.*" "watch off"
# Now the printf tests
#
--- 131,137 ----
}
gdb_test "disab 3" ".*.*" "disab 3"
! gdb_test "cont" ".*Breakpoint 4.*" "watch off"
# Now the printf tests
#
*************** gdb_expect {
*** 153,161 ****
}
}
! gdb_test "s" ".*do_vars.*.*27.*"
! gdb_test "tb 37" ".*Breakpoint 5 a.*"
! gdb_test "c" ".*do_vars.*37.*37.*"
# Beat on printf a bit
#
--- 158,166 ----
}
}
! gdb_test "step" ".*do_vars.*.*27.*"
! gdb_test "tbreak 37" ".*Breakpoint 5 a.*"
! gdb_test "cont" ".*do_vars.*37.*37.*"
# Beat on printf a bit
#
*************** gdb_test "printf \"\"" ".*" "re-set term
*** 168,177 ****
gdb_test "printf \"\\w\"" ".*Unrecognized escape character.*"
gdb_test "printf \"%d\" j" ".*Invalid argument syntax.*"
! # play with "p", too
#
! gdb_test "p/r j" ".*Undefined output format.*"
! gdb_test "p j" ".*" "debug test output"
# x/0 j doesn't produce any output and terminates PA64 process when testing
if [istarget "hppa2.0w-hp-hpux11*"] {
--- 173,182 ----
gdb_test "printf \"\\w\"" ".*Unrecognized escape character.*"
gdb_test "printf \"%d\" j" ".*Invalid argument syntax.*"
! # play with "print", too
#
! gdb_test "print/r j" ".*Undefined output format.*"
! gdb_test "print j" ".*" "debug test output"
# x/0 j doesn't produce any output and terminates PA64 process when testing
if [istarget "hppa2.0w-hp-hpux11*"] {
*************** if [istarget "hppa*-hp-hpux*"] {
*** 183,197 ****
# on HP-UX you could access the first page without getting an error
gdb_test "x/rx j" ".*(Cannot access|Error accessing) memory.*|.*0xa:\[ \t\]*\[0-9\]+.*"
}
! gdb_test "p/0 j" ".*Item count other than 1 is meaningless.*" "p/0 j"
! gdb_test "p/s sum" ".*Format letter.*is meaningless.*" " no s"
! gdb_test "p/i sum" ".*Format letter.*is meaningless.*.*" "no i"
! gdb_test "p/a &sum" ".*= $hex.*<sum>.*"
# If the constant below is larger than the length of main, then
# this test will (incorrectly) fail. So use a small number.
! gdb_test "p/a main+4" ".*= $hex.*<.*>.*"
! gdb_test "p/a \$pc" ".*= $hex.*<do_vars+.*>.*"
! gdb_test "p/a &&j" ".*A .* error in expression.*"
# Done!
#
--- 188,202 ----
# on HP-UX you could access the first page without getting an error
gdb_test "x/rx j" ".*(Cannot access|Error accessing) memory.*|.*0xa:\[ \t\]*\[0-9\]+.*"
}
! gdb_test "print/0 j" ".*Item count other than 1 is meaningless.*" "print/0 j"
! gdb_test "print/s sum" ".*Format letter.*is meaningless.*" " no s"
! gdb_test "print/i sum" ".*Format letter.*is meaningless.*.*" "no i"
! gdb_test "print/a &sum" ".*= $hex.*<sum>.*"
# If the constant below is larger than the length of main, then
# this test will (incorrectly) fail. So use a small number.
! gdb_test "print/a main+4" ".*= $hex.*<.*>.*"
! gdb_test "print/a \$pc" ".*= $hex.*<do_vars+.*>.*"
! gdb_test "print/a &&j" ".*A .* error in expression.*"
# Done!
#
Index: recurse.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/recurse.exp,v
retrieving revision 1.22
diff -c -3 -p -r1.22 recurse.exp
*** recurse.exp 2000/08/11 00:28:29 1.22
--- recurse.exp 2000/10/18 00:21:47
*************** gdb_load ${binfile}
*** 42,47 ****
--- 42,52 ----
proc recurse_tests {} {
+ # Disable hardware watchpoints if necessary.
+ if [target_info exists gdb,no_hardware_watchpoints] {
+ gdb_test "set can-use-hw-watchpoints 0" "" ""
+ }
+
if [runto recurse] then {
# First we need to step over the assignment of b, so it has a known
# value.