aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.arch/amd64-disp-step.exp
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2009-02-17 06:14:17 +0000
committerDoug Evans <dje@google.com>2009-02-17 06:14:17 +0000
commit1903f0e64bb6f600388af42a7af7aff02e70bdef (patch)
tree38b72309b83508ccf9dc30ebce511f549d2fb988 /gdb/testsuite/gdb.arch/amd64-disp-step.exp
parented38e4b97416eca6ee43599ce82ccf4306adca18 (diff)
downloadgdb-1903f0e64bb6f600388af42a7af7aff02e70bdef.zip
gdb-1903f0e64bb6f600388af42a7af7aff02e70bdef.tar.gz
gdb-1903f0e64bb6f600388af42a7af7aff02e70bdef.tar.bz2
* amd64-tdep.c (amd64_skip_prefixes): Renamed from skip_prefixes.
All callers updated. (amd64_get_insn_details): Handle more 3-byte opcode insns. (amd64_breakpoint_p): Delete. (amd64_displaced_step_fixup): When fixing up after stepping an int3, don't back up pc to the start of the int3. * i386-tdep.c: #include opcode/i386.h. (i386_skip_prefixes): New function. (i386_absolute_jmp_p): Constify argument. (i386_absolute_call_p,i386_ret_p,i386_call_p,i386_syscall_p): Ditto. (i386_breakpoint_p): Delete. (i386_displaced_step_fixup): Handle unnecessary or redundant prefixes. When fixing up after stepping an int3, don't back up pc to the start of the int3. * gdb.arch/amd64-disp-step.S (test_int3): New test. * gdb.arch/amd64-disp-step.exp (test_int3): New test. * gdb.arch/i386-disp-step.S (test_prefixed_abs_jump): New test. (test_prefixed_syscall,test_int3): New tests. * gdb.arch/i386-disp-step.exp (test_prefixed_abs_jump): New test. (test_prefixed_syscall,test_int3): New tests.
Diffstat (limited to 'gdb/testsuite/gdb.arch/amd64-disp-step.exp')
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step.exp20
1 files changed, 20 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step.exp b/gdb/testsuite/gdb.arch/amd64-disp-step.exp
index 26ebe59..3b0f83b 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step.exp
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step.exp
@@ -141,6 +141,26 @@ gdb_test "continue" \
##########################################
+# int3 (with prefixes)
+# These don't occur in normal code, but gdb should still DTRT.
+
+gdb_test "break test_int3" \
+ "Breakpoint.*at.* file .*$srcfile, line.*" \
+ "break test_int3"
+gdb_test "break test_int3_end" \
+ "Breakpoint.*at.* file .*$srcfile, line.*" \
+ "break test_int3_end"
+
+gdb_test "continue" \
+ "Continuing.*Breakpoint.*, test_int3 ().*" \
+ "continue to test_int3"
+
+gdb_test "continue" \
+ "Continuing.*Breakpoint.*, test_int3_end ().*" \
+ "continue to test_int3_end"
+
+##########################################
+
# Test rip-relative.
# GDB picks a spare register to hold the rip-relative address.
# Exercise all the possibilities (rax-rdi, sans rsp).