diff options
Diffstat (limited to 'gdb/testsuite/gdb.base/dprintf.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/dprintf.exp | 53 |
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" + } } } |