2000-11-03 Michael Snyder <msnyder@cleaver.cygnus.com>
* gdb.base/a2-run.exp: Use gdb_skip_stdio_test. * gdb.base/corefile.exp: Expect the message "Program is being debugged already" when we send the "corefile" command, since the preceeding gdb_load may have connected gdb to a remote target. * gdb.base/display.exp: Disable hardware watchpoints if new board info variable "no_hardware_watchpoints" is true. Replace single-letter commands with more readable ones. * gdb.base/recurse.exp (recurse_tests): Disable hardware watchpoints if new board info variable "no_hardware_watchpoints" is true. * gdb.base/restore.exp (restore_tests): Call gdb_skip_stdio_tests to see if stdio (printf) testing is possible. * gdb.base/watchpoint.exp: Disable hardware watchpoints if new board info variable "no_hardware_watchpoints" is true. Use new proc "gdb_skip_stdio_tests" to see if printf tests are possible.
This commit is contained in:
parent
4a1805b14d
commit
958a4e4cde
|
@ -1,3 +1,20 @@
|
||||||
|
2000-11-03 Michael Snyder <msnyder@cleaver.cygnus.com>
|
||||||
|
|
||||||
|
* gdb.base/a2-run.exp: Use gdb_skip_stdio_test.
|
||||||
|
* gdb.base/corefile.exp: Expect the message "Program is being
|
||||||
|
debugged already" when we send the "corefile" command, since
|
||||||
|
the preceeding gdb_load may have connected gdb to a remote target.
|
||||||
|
* gdb.base/display.exp: Disable hardware watchpoints if new
|
||||||
|
board info variable "no_hardware_watchpoints" is true.
|
||||||
|
Replace single-letter commands with more readable ones.
|
||||||
|
* gdb.base/recurse.exp (recurse_tests): Disable hardware watchpoints
|
||||||
|
if new board info variable "no_hardware_watchpoints" is true.
|
||||||
|
* gdb.base/restore.exp (restore_tests): Call gdb_skip_stdio_tests
|
||||||
|
to see if stdio (printf) testing is possible.
|
||||||
|
* gdb.base/watchpoint.exp: Disable hardware watchpoints if new
|
||||||
|
board info variable "no_hardware_watchpoints" is true. Use new
|
||||||
|
proc "gdb_skip_stdio_tests" to see if printf tests are possible.
|
||||||
|
|
||||||
2000-11-13 Fernando Nasser <fnasser@redhat.com>
|
2000-11-13 Fernando Nasser <fnasser@redhat.com>
|
||||||
|
|
||||||
From Orjan Friberg <orjanf@axis.com>:
|
From Orjan Friberg <orjanf@axis.com>:
|
||||||
|
|
|
@ -26,8 +26,8 @@ if [target_info exists noargs] then {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if [target_info exists gdb,noinferiorio] {
|
# Can't do this test without stdio support.
|
||||||
verbose "Skipping a2-run.exp because of noinferiorio."
|
if [gdb_skip_stdio_test "a2run.exp"] {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -164,6 +164,11 @@ gdb_load ${binfile}
|
||||||
|
|
||||||
send_gdb "core-file $objdir/$subdir/corefile\n"
|
send_gdb "core-file $objdir/$subdir/corefile\n"
|
||||||
gdb_expect {
|
gdb_expect {
|
||||||
|
-re ".* program is being debugged already.*y or n. $" {
|
||||||
|
# gdb_load may connect us to a gdbserver.
|
||||||
|
send_gdb "y\n"
|
||||||
|
exp_continue;
|
||||||
|
}
|
||||||
-re "Core was generated by .*coremaker.*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" {
|
-re "Core was generated by .*coremaker.*\r\n\#0 .*\(\).*\r\n$gdb_prompt $" {
|
||||||
pass "core-file command"
|
pass "core-file command"
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,13 +70,18 @@ if ![runto_main] then {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
gdb_test "b 14" ".*Breakpoint 2.*" "break do_loops"
|
# Disable hardware watchpoints if necessary.
|
||||||
gdb_test "c" ".*Breakpoint 2, do_loops.*" "get to do_loops"
|
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.
|
# Create stopping points.
|
||||||
#
|
#
|
||||||
gdb_test "wat sum" ".*\[Ww\]atchpoint 3: sum.*" "set watch"
|
gdb_test "watch sum" ".*\[Ww\]atchpoint 3: sum.*" "set watch"
|
||||||
gdb_test "b 19" ".*Breakpoint 4.*" "break 19"
|
gdb_test "break 19" ".*Breakpoint 4.*" "break 19"
|
||||||
|
|
||||||
# Create displays for those points
|
# Create displays for those points
|
||||||
#
|
#
|
||||||
|
@ -89,8 +94,8 @@ gdb_test "disp/s &sum" ".*5: x/s &sum $hex.*sum.:.*" "display/s &sum"
|
||||||
|
|
||||||
# Hit the displays
|
# 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 "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 "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 "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 "enab disp 6" ".*No display number 6..*" "catch err"
|
||||||
gdb_test "disab disp 1" ".*" "disab disp 1"
|
gdb_test "disab disp 1" ".*" "disab disp 1"
|
||||||
|
@ -98,9 +103,9 @@ gdb_test "disab disp 2" ".*" "disab disp 2"
|
||||||
gdb_test "enab disp 1" ".*" "re-enab"
|
gdb_test "enab disp 1" ".*" "re-enab"
|
||||||
gdb_test "enab disp 1" ".*" "re-enab of enab"
|
gdb_test "enab disp 1" ".*" "re-enab of enab"
|
||||||
gdb_test "undisp 5" ".*" "undisp"
|
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 "info 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"
|
gdb_test "cont" ".*\[Ww\]atch.*4.20389539e-45.*.*i = 0.*" "next hit"
|
||||||
|
|
||||||
send_gdb "undisp\n"
|
send_gdb "undisp\n"
|
||||||
gdb_expect {
|
gdb_expect {
|
||||||
|
@ -126,7 +131,7 @@ gdb_expect {
|
||||||
}
|
}
|
||||||
|
|
||||||
gdb_test "disab 3" ".*.*" "disab 3"
|
gdb_test "disab 3" ".*.*" "disab 3"
|
||||||
gdb_test "c" ".*Breakpoint 4.*" "watch off"
|
gdb_test "cont" ".*Breakpoint 4.*" "watch off"
|
||||||
|
|
||||||
# Now the printf tests
|
# Now the printf tests
|
||||||
#
|
#
|
||||||
|
@ -153,9 +158,9 @@ gdb_expect {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gdb_test "s" ".*do_vars.*.*27.*"
|
gdb_test "step" ".*do_vars.*.*27.*"
|
||||||
gdb_test "tb 37" ".*Breakpoint 5 a.*"
|
gdb_test "tbreak 37" ".*Breakpoint 5 a.*"
|
||||||
gdb_test "c" ".*do_vars.*37.*37.*"
|
gdb_test "cont" ".*do_vars.*37.*37.*"
|
||||||
|
|
||||||
# Beat on printf a bit
|
# Beat on printf a bit
|
||||||
#
|
#
|
||||||
|
@ -168,10 +173,10 @@ gdb_test "printf \"\"" ".*" "re-set term"
|
||||||
gdb_test "printf \"\\w\"" ".*Unrecognized escape character.*"
|
gdb_test "printf \"\\w\"" ".*Unrecognized escape character.*"
|
||||||
gdb_test "printf \"%d\" j" ".*Invalid argument syntax.*"
|
gdb_test "printf \"%d\" j" ".*Invalid argument syntax.*"
|
||||||
|
|
||||||
# play with "p", too
|
# play with "print", too
|
||||||
#
|
#
|
||||||
gdb_test "p/r j" ".*Undefined output format.*"
|
gdb_test "print/r j" ".*Undefined output format.*"
|
||||||
gdb_test "p j" ".*" "debug test output"
|
gdb_test "print j" ".*" "debug test output"
|
||||||
|
|
||||||
# x/0 j doesn't produce any output and terminates PA64 process when testing
|
# x/0 j doesn't produce any output and terminates PA64 process when testing
|
||||||
if [istarget "hppa2.0w-hp-hpux11*"] {
|
if [istarget "hppa2.0w-hp-hpux11*"] {
|
||||||
|
@ -183,15 +188,15 @@ if [istarget "hppa*-hp-hpux*"] {
|
||||||
# on HP-UX you could access the first page without getting an error
|
# 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 "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 "print/0 j" ".*Item count other than 1 is meaningless.*" "print/0 j"
|
||||||
gdb_test "p/s sum" ".*Format letter.*is meaningless.*" " no s"
|
gdb_test "print/s sum" ".*Format letter.*is meaningless.*" " no s"
|
||||||
gdb_test "p/i sum" ".*Format letter.*is meaningless.*.*" "no i"
|
gdb_test "print/i sum" ".*Format letter.*is meaningless.*.*" "no i"
|
||||||
gdb_test "p/a &sum" ".*= $hex.*<sum>.*"
|
gdb_test "print/a &sum" ".*= $hex.*<sum>.*"
|
||||||
# If the constant below is larger than the length of main, then
|
# If the constant below is larger than the length of main, then
|
||||||
# this test will (incorrectly) fail. So use a small number.
|
# this test will (incorrectly) fail. So use a small number.
|
||||||
gdb_test "p/a main+4" ".*= $hex.*<.*>.*"
|
gdb_test "print/a main+4" ".*= $hex.*<.*>.*"
|
||||||
gdb_test "p/a \$pc" ".*= $hex.*<do_vars+.*>.*"
|
gdb_test "print/a \$pc" ".*= $hex.*<do_vars+.*>.*"
|
||||||
gdb_test "p/a &&j" ".*A .* error in expression.*"
|
gdb_test "print/a &&j" ".*A .* error in expression.*"
|
||||||
|
|
||||||
# Done!
|
# Done!
|
||||||
#
|
#
|
||||||
|
|
|
@ -42,6 +42,11 @@ gdb_load ${binfile}
|
||||||
|
|
||||||
proc recurse_tests {} {
|
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 {
|
if [runto recurse] then {
|
||||||
# First we need to step over the assignment of b, so it has a known
|
# First we need to step over the assignment of b, so it has a known
|
||||||
# value.
|
# value.
|
||||||
|
|
|
@ -87,19 +87,24 @@ proc restore_tests { } {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
send_gdb "continue\n"
|
if ![gdb_skip_stdio_test "run to completion"] {
|
||||||
|
send_gdb "continue\n"
|
||||||
|
|
||||||
gdb_expect {
|
gdb_expect {
|
||||||
-re "exiting" {
|
-re "exiting" {
|
||||||
pass "run to completion"
|
pass "run to completion"
|
||||||
}
|
}
|
||||||
timeout {
|
timeout {
|
||||||
fail "(timeout) run to completion"
|
fail "(timeout) run to completion"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
gdb_test "continue" "" ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Start with a fresh gdb.
|
# Start with a fresh gdb.
|
||||||
|
|
||||||
gdb_exit
|
gdb_exit
|
||||||
|
|
|
@ -63,6 +63,11 @@ proc initialize {} {
|
||||||
global srcfile
|
global srcfile
|
||||||
global wp_set
|
global wp_set
|
||||||
|
|
||||||
|
# Disable hardware watchpoints if necessary.
|
||||||
|
if [target_info exists gdb,no_hardware_watchpoints] {
|
||||||
|
gdb_test "set can-use-hw-watchpoints 0" "" ""
|
||||||
|
}
|
||||||
|
|
||||||
if [gdb_test "break marker1" "Breakpoint 1 at $hex: file .*$srcfile, line $decimal.*" "set breakpoint at marker1" ] {
|
if [gdb_test "break marker1" "Breakpoint 1 at $hex: file .*$srcfile, line $decimal.*" "set breakpoint at marker1" ] {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -460,9 +465,9 @@ proc test_stepping {} {
|
||||||
proc test_watchpoint_triggered_in_syscall {} {
|
proc test_watchpoint_triggered_in_syscall {} {
|
||||||
global gdb_prompt
|
global gdb_prompt
|
||||||
|
|
||||||
if [target_info exists gdb,noinferiorio] {
|
# These tests won't work without printf support.
|
||||||
verbose "Skipping test_watchpoint_triggered_in_syscall due to noinferiorio"
|
if [gdb_skip_stdio_test "watchpoints triggered in syscall"] {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
# Run until we get to the first marker function.
|
# Run until we get to the first marker function.
|
||||||
set x 0
|
set x 0
|
||||||
|
|
Loading…
Reference in New Issue