mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 19:50:13 +08:00
[gdb/testsuite] Fix gdb.opt/solib-intra-step.exp with -m32 and gcc-10
When running test-case gdb.opt/solib-intra-step.exp with target board unix/-m32 and gcc-10, I run into: ... (gdb) step^M __x86.get_pc_thunk.bx () at ../sysdeps/i386/crti.S:68^M 68 ../sysdeps/i386/crti.S: No such file or directory.^M (gdb) step^M shlib_second (dummy=0) at solib-intra-step-lib.c:23^M 23 abort (); /* second-hit */^M (gdb) FAIL: gdb.opt/solib-intra-step.exp: second-hit ... The problem is that the test-case expects to step past the retry line, which is optional. Fix this by removing the state tracking logic from the gdb_test_multiples. It makes the test more difficult to understand, and doesn't specifically test for faulty gdb behaviour. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2021-01-29 Tom de Vries <tdevries@suse.de> * gdb.opt/solib-intra-step.exp: Remove state tracking logic.
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
2021-01-29 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
|
* gdb.opt/solib-intra-step.exp: Remove state tracking logic.
|
||||||
|
|
||||||
2021-01-28 Tom de Vries <tdevries@suse.de>
|
2021-01-28 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
* gdb.arch/i386-gnu-cfi.exp: Capture the position of function gate
|
* gdb.arch/i386-gnu-cfi.exp: Capture the position of function gate
|
||||||
|
@ -48,52 +48,30 @@ if ![runto_main] then {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set test "first-hit"
|
set test "first-hit"
|
||||||
set state 0
|
|
||||||
gdb_test_multiple "step" $test {
|
gdb_test_multiple "step" $test {
|
||||||
-re -wrap " first-hit .*" {
|
-re -wrap " first-hit .*" {
|
||||||
gdb_assert { $state != -1 } $test
|
pass $gdb_test_name
|
||||||
}
|
}
|
||||||
-re -wrap " first-retry .*" {
|
-re -wrap " first-retry .*" {
|
||||||
if { $state != 0 } {
|
|
||||||
set state -1
|
|
||||||
} else {
|
|
||||||
set state 1
|
|
||||||
}
|
|
||||||
send_gdb "step\n"
|
send_gdb "step\n"
|
||||||
exp_continue
|
exp_continue
|
||||||
}
|
}
|
||||||
-re -wrap "get_pc_thunk.*" {
|
-re -wrap "get_pc_thunk.*" {
|
||||||
if { $state != 1 } {
|
|
||||||
set state -1
|
|
||||||
} else {
|
|
||||||
set state 2
|
|
||||||
}
|
|
||||||
send_gdb "step\n"
|
send_gdb "step\n"
|
||||||
exp_continue
|
exp_continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
set test "second-hit"
|
set test "second-hit"
|
||||||
set state 0
|
|
||||||
gdb_test_multiple "step" $test {
|
gdb_test_multiple "step" $test {
|
||||||
-re -wrap " second-hit .*" {
|
-re -wrap " second-hit .*" {
|
||||||
gdb_assert { $state != -1 } $test
|
pass $gdb_test_name
|
||||||
}
|
}
|
||||||
-re -wrap " second-retry .*" {
|
-re -wrap " second-retry .*" {
|
||||||
if { $state != 0 } {
|
|
||||||
set state -1
|
|
||||||
} else {
|
|
||||||
set state 1
|
|
||||||
}
|
|
||||||
send_gdb "step\n"
|
send_gdb "step\n"
|
||||||
exp_continue
|
exp_continue
|
||||||
}
|
}
|
||||||
-re -wrap "get_pc_thunk.*" {
|
-re -wrap "get_pc_thunk.*" {
|
||||||
if { $state != 1 } {
|
|
||||||
set state -1
|
|
||||||
} else {
|
|
||||||
set state 2
|
|
||||||
}
|
|
||||||
send_gdb "step\n"
|
send_gdb "step\n"
|
||||||
exp_continue
|
exp_continue
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user