aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/dprintf.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.base/dprintf.exp')
-rw-r--r--gdb/testsuite/gdb.base/dprintf.exp53
1 files changed, 37 insertions, 16 deletions
diff --git a/gdb/testsuite/gdb.base/dprintf.exp b/gdb/testsuite/gdb.base/dprintf.exp
index cb21d2e..a040580 100644
--- a/gdb/testsuite/gdb.base/dprintf.exp
+++ b/gdb/testsuite/gdb.base/dprintf.exp
@@ -96,15 +96,20 @@ if ![target_info exists gdb,noinferiorio] {
"2nd dprintf, fprintf"
}
+# Now test the "agent" style.
+
set target_can_dprintf 1
-set msg "Set dprintf style to agent"
+set msg "set dprintf style to agent"
gdb_test_multiple "set dprintf-style agent" $msg {
-re "warning: Target cannot run dprintf commands.*\r\n$gdb_prompt $" {
+
+ # The target reports that it doesn't support target side
+ # commands at all.
set target_can_dprintf 0
- pass "$msg - cannot do"
+ unsupported "$msg"
}
-re ".*$gdb_prompt $" {
- pass "$msg - can do"
+ pass "$msg"
}
}
@@ -113,20 +118,36 @@ if $target_can_dprintf {
gdb_test "" "Breakpoint"
- gdb_test "continue" "Breakpoint \[0-9\]+, foo .*" "1st dprintf, agent"
-
- gdb_test "continue" "Breakpoint \[0-9\]+, foo .*" "2nd dprintf, agent"
+ # Even if the the target reports that it does support target side
+ # commands, we can only tell that it supports them in combination
+ # with a particular breakpoint type (Z0, Z1, etc.) when we try to
+ # insert the breakpoint. When "set breakpoint always-inserted is
+ # off", that'll be on next continue.
+ set msg "1st dprintf, agent"
+ gdb_test_multiple "continue" $msg {
+ -re "Warning:.*Target doesn't support breakpoints that have target side commands.*\r\n$gdb_prompt $" {
+ set target_can_dprintf 0
+ unsupported "$msg"
+ }
+ -re "Breakpoint \[0-9\]+, foo .*$gdb_prompt $" {
+ pass "$msg"
+ }
+ }
- gdb_test_sequence "info breakpoints" "dprintf info 2" {
- "\[\r\n\]Num Type Disp Enb Address +What"
- "\[\r\n\]2 breakpoint"
- "\[\r\n\]\tbreakpoint already hit 2 times"
- "\[\r\n\]3 dprintf"
- "\[\r\n\]\tbreakpoint already hit 2 times"
- "\[\r\n\] agent-printf \"At foo entry\\\\n\""
- "\[\r\n\]4 dprintf"
- "\[\r\n\]\tbreakpoint already hit 2 times"
- "\[\r\n\] agent-printf \"arg=%d, g=%d\\\\n\", arg, g"
+ if $target_can_dprintf {
+ gdb_test "continue" "Breakpoint \[0-9\]+, foo .*" "2nd dprintf, agent"
+
+ gdb_test_sequence "info breakpoints" "dprintf info 2" {
+ "\[\r\n\]Num Type Disp Enb Address +What"
+ "\[\r\n\]2 breakpoint"
+ "\[\r\n\]\tbreakpoint already hit 2 times"
+ "\[\r\n\]3 dprintf"
+ "\[\r\n\]\tbreakpoint already hit 2 times"
+ "\[\r\n\] agent-printf \"At foo entry\\\\n\""
+ "\[\r\n\]4 dprintf"
+ "\[\r\n\]\tbreakpoint already hit 2 times"
+ "\[\r\n\] agent-printf \"arg=%d, g=%d\\\\n\", arg, g"
+ }
}
}