aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/disp-step-syscall.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.base/disp-step-syscall.exp')
-rw-r--r--gdb/testsuite/gdb.base/disp-step-syscall.exp13
1 files changed, 7 insertions, 6 deletions
diff --git a/gdb/testsuite/gdb.base/disp-step-syscall.exp b/gdb/testsuite/gdb.base/disp-step-syscall.exp
index a1af3b4..3cf436d 100644
--- a/gdb/testsuite/gdb.base/disp-step-syscall.exp
+++ b/gdb/testsuite/gdb.base/disp-step-syscall.exp
@@ -15,11 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-if { ![support_displaced_stepping] } {
- unsupported "displaced stepping"
- return -1
-}
-
set syscall_insn ""
# Define the syscall instruction for each target.
@@ -124,6 +119,11 @@ proc disp_step_cross_syscall { syscall } {
return -1
}
+ foreach_with_prefix displaced {"off" "on"} {
+ if {$displaced == "on" && ![support_displaced_stepping]} {
+ continue
+ }
+
set ret [setup $syscall]
set syscall_insn_addr [lindex $ret 0]
@@ -149,7 +149,7 @@ proc disp_step_cross_syscall { syscall } {
gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, .*" \
"continue to syscall insn $syscall"
- gdb_test_no_output "set displaced-stepping on"
+ gdb_test_no_output "set displaced-stepping $displaced"
# Check the address of next instruction of syscall.
if {[gdb_test "stepi" "x/i .*=>.*" "single step over $syscall"] != 0} {
@@ -164,6 +164,7 @@ proc disp_step_cross_syscall { syscall } {
gdb_test "break marker" "Breakpoint.*at.* file .*${testfile}.c, line.*"
gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker \\(\\) at.*" \
"continue to marker ($syscall)"
+ }
}
}