Remove gdb/19675 kfails (displaced stepping + clone)
Now that gdb/19675 is fixed for both native and gdbserver GNU/Linux, remove the gdb/19675 kfails. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=19675 Reviewed-By: Andrew Burgess <aburgess@redhat.com> Change-Id: I95c1c38ca370100675d303cd3c8995860bef465d
This commit is contained in:
parent
faf44a3105
commit
6bd50ebd29
@ -42,44 +42,15 @@ if { [istarget "i\[34567\]86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
|
||||
}
|
||||
|
||||
proc_with_prefix check_pc_after_cross_syscall { displaced syscall syscall_insn_next_addr } {
|
||||
global gdb_prompt
|
||||
|
||||
set syscall_insn_next_addr_found [get_hexadecimal_valueof "\$pc" "0"]
|
||||
|
||||
# After the 'stepi' we expect thread 1 to still be selected.
|
||||
# However, when displaced stepping over a clone bug gdb/19675
|
||||
# means this might not be the case.
|
||||
#
|
||||
# Which thread we end up in depends on a race between the original
|
||||
# thread-1, and the new thread (created by the clone), so we can't
|
||||
# guarantee which thread we will be in at this point.
|
||||
#
|
||||
# For the fork/vfork syscalls, which are correctly handled by
|
||||
# displaced stepping we will always be in thread-1 or the original
|
||||
# process at this point.
|
||||
set curr_thread "unknown"
|
||||
gdb_test_multiple "info threads" "" {
|
||||
-re "Id\\s+Target Id\\s+Frame\\s*\r\n" {
|
||||
exp_continue
|
||||
}
|
||||
-re "^\\* (\\d+)\\s+\[^\r\n\]+\r\n" {
|
||||
gdb_test_multiple "thread" "" {
|
||||
-re -wrap "Current thread is (\\d+) .*" {
|
||||
set curr_thread $expect_out(1,string)
|
||||
exp_continue
|
||||
pass $gdb_test_name
|
||||
}
|
||||
-re "^\\s+\\d+\\s+\[^\r\n\]+\r\n" {
|
||||
exp_continue
|
||||
}
|
||||
-re "$gdb_prompt " {
|
||||
}
|
||||
}
|
||||
|
||||
# If we are displaced stepping over a clone, and we ended up in
|
||||
# the wrong thread then the following check of the $pc value will
|
||||
# fail.
|
||||
if { $displaced == "on" && $syscall == "clone" && $curr_thread != 1 } {
|
||||
# GDB doesn't support stepping over clone syscall with
|
||||
# displaced stepping.
|
||||
setup_kfail "*-*-*" "gdb/19675"
|
||||
}
|
||||
|
||||
gdb_assert {$syscall_insn_next_addr != 0 \
|
||||
@ -299,15 +270,6 @@ proc step_over_syscall { syscall } {
|
||||
|
||||
gdb_test "break marker" "Breakpoint.*at.* file .*${testfile}.c, line.*"
|
||||
|
||||
# If we are displaced stepping over a clone syscall then
|
||||
# we expect the following check to fail. See also the
|
||||
# code in check_pc_after_cross_syscall.
|
||||
if { $displaced == "on" && $syscall == "clone" } {
|
||||
# GDB doesn't support stepping over clone syscall with
|
||||
# displaced stepping.
|
||||
setup_kfail "*-*-*" "gdb/19675"
|
||||
}
|
||||
|
||||
gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, marker \\(\\) at.*" \
|
||||
"continue to marker ($syscall)"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user