Message ID | 5526B296.8040000@codesourcery.com |
---|---|
State | New |
Headers | show |
On 04/09/2015 06:10 PM, Luis Machado wrote: > diff --git a/gdb/testsuite/gdb.base/bp-permanent.exp b/gdb/testsuite/gdb.base/bp-permanent.exp > index 81a5293..9193db8 100644 > --- a/gdb/testsuite/gdb.base/bp-permanent.exp > +++ b/gdb/testsuite/gdb.base/bp-permanent.exp > @@ -104,7 +104,18 @@ proc test {always_inserted sw_watchpoint} { > # to memory manually. > set count [expr $address_after_bp - $address_bp] > for {set i 0} {$i < $count} {incr i} { > - gdb_test "p /x addr_bp\[$i\] = buffer\[$i\]" " = .*" > + gdb_test_multiple "p /x addr_bp\[$i\] = buffer\[$i\]" $test { > + -re "Cannot access memory at address $hex.*$gdb_prompt $" { > + # Some targets (QEMU for one) do not allow writes to the > + # .text section. It is no use continuing with the test > + # at this point. Just return. Double space after period. > + unsupported $test Something like: unsupported "Cannot access memory" OK with those changes. I'm thinking it'd be good to adjust the test to hardcode the breakpoint instruction (on an arch by arch basis, leaving the current generic code in place), as it'd be good to test stepping past permanent/program trap instructions on QEMU/Valgrind, etc. too. Thanks, Pedro Alves
2015-04-09 Luis Machado <lgustavo@codesourcery.com> gdb/testsuite/ * gdb.base/bp-permanent.exp (test): Handle the case of being unable to write to the .text section. diff --git a/gdb/testsuite/gdb.base/bp-permanent.exp b/gdb/testsuite/gdb.base/bp-permanent.exp index 81a5293..9193db8 100644 --- a/gdb/testsuite/gdb.base/bp-permanent.exp +++ b/gdb/testsuite/gdb.base/bp-permanent.exp @@ -104,7 +104,18 @@ proc test {always_inserted sw_watchpoint} { # to memory manually. set count [expr $address_after_bp - $address_bp] for {set i 0} {$i < $count} {incr i} { - gdb_test "p /x addr_bp\[$i\] = buffer\[$i\]" " = .*" + gdb_test_multiple "p /x addr_bp\[$i\] = buffer\[$i\]" $test { + -re "Cannot access memory at address $hex.*$gdb_prompt $" { + # Some targets (QEMU for one) do not allow writes to the + # .text section. It is no use continuing with the test + # at this point. Just return. + unsupported $test + return + } + -re " = .*$gdb_prompt $" { + pass $test + } + } } }