mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 21:41:47 +08:00
* gdb.base/foll-fork.exp (catch_fork_child_follow): Fix patterns
matching syscall entry point. * gdb.base/foll-vfork.exp (tcatch_vfork_then_parent_follow) (tcatch_vfork_then_child_follow): Likewise. Finish through vfork even if we stopped at the syscall trampoline.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -167,7 +167,7 @@ proc catch_fork_child_follow {} {
|
|||||||
|
|
||||||
send_gdb "continue\n"
|
send_gdb "continue\n"
|
||||||
gdb_expect {
|
gdb_expect {
|
||||||
-re "Catchpoint.*(forked process.*),.*in .*(fork|__kernel_vsyscall).*$gdb_prompt $"\
|
-re "Catchpoint.*(forked process.*),.*in .*(fork|__kernel_v?syscall).*$gdb_prompt $"\
|
||||||
{pass "explicit child follow, catch fork"}
|
{pass "explicit child follow, catch fork"}
|
||||||
-re "$gdb_prompt $" {fail "explicit child follow, catch fork"}
|
-re "$gdb_prompt $" {fail "explicit child follow, catch fork"}
|
||||||
timeout {fail "(timeout) explicit child follow, catch fork"}
|
timeout {fail "(timeout) explicit child follow, catch fork"}
|
||||||
@ -239,7 +239,7 @@ proc tcatch_fork_parent_follow {} {
|
|||||||
|
|
||||||
send_gdb "continue\n"
|
send_gdb "continue\n"
|
||||||
gdb_expect {
|
gdb_expect {
|
||||||
-re ".*in .*(fork|__kernel_vsyscall).*$gdb_prompt $"\
|
-re ".*in .*(fork|__kernel_v?syscall).*$gdb_prompt $"\
|
||||||
{pass "explicit parent follow, tcatch fork"}
|
{pass "explicit parent follow, tcatch fork"}
|
||||||
-re "$gdb_prompt $" {fail "explicit parent follow, tcatch fork"}
|
-re "$gdb_prompt $" {fail "explicit parent follow, tcatch fork"}
|
||||||
timeout {fail "(timeout) explicit parent follow, tcatch fork"}
|
timeout {fail "(timeout) explicit parent follow, tcatch fork"}
|
||||||
|
@ -264,7 +264,7 @@ proc tcatch_vfork_then_parent_follow {} {
|
|||||||
# HP-UX 10.20 seems to stop you in "vfork", while more recent HP-UXs
|
# HP-UX 10.20 seems to stop you in "vfork", while more recent HP-UXs
|
||||||
# stop you in "_vfork".
|
# stop you in "_vfork".
|
||||||
gdb_expect {
|
gdb_expect {
|
||||||
-re "0x\[0-9a-fA-F\]*.*vfork.*$gdb_prompt "\
|
-re "0x\[0-9a-fA-F\]*.*(vfork|__kernel_v?syscall).*$gdb_prompt "\
|
||||||
{pass "vfork parent follow, tcatch vfork"}
|
{pass "vfork parent follow, tcatch vfork"}
|
||||||
-re "vfork \\(\\) at.*$gdb_prompt "\
|
-re "vfork \\(\\) at.*$gdb_prompt "\
|
||||||
{pass "vfork parent follow, tcatch vfork"}
|
{pass "vfork parent follow, tcatch vfork"}
|
||||||
@ -275,6 +275,10 @@ proc tcatch_vfork_then_parent_follow {} {
|
|||||||
gdb_expect {
|
gdb_expect {
|
||||||
-re "Run till exit from.*vfork.*0x\[0-9a-fA-F\]* in main .* at .*${srcfile}:12.*$gdb_prompt "\
|
-re "Run till exit from.*vfork.*0x\[0-9a-fA-F\]* in main .* at .*${srcfile}:12.*$gdb_prompt "\
|
||||||
{pass "vfork parent follow, finish after tcatch vfork"}
|
{pass "vfork parent follow, finish after tcatch vfork"}
|
||||||
|
-re "Run till exit from.*__kernel_v?syscall.*0x\[0-9a-fA-F\]* in vfork .*$gdb_prompt " {
|
||||||
|
send_gdb "finish\n"
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
-re "$gdb_prompt $" {fail "vfork parent follow, finish after tcatch vfork"}
|
-re "$gdb_prompt $" {fail "vfork parent follow, finish after tcatch vfork"}
|
||||||
timeout {fail "(timeout) vfork parent follow, finish after tcatch vfork" }
|
timeout {fail "(timeout) vfork parent follow, finish after tcatch vfork" }
|
||||||
}
|
}
|
||||||
@ -308,9 +312,7 @@ proc tcatch_vfork_then_child_follow {} {
|
|||||||
gdb_expect {
|
gdb_expect {
|
||||||
-re "vfork \\(\\) at .*$gdb_prompt $"\
|
-re "vfork \\(\\) at .*$gdb_prompt $"\
|
||||||
{pass "vfork child follow, tcatch vfork"}
|
{pass "vfork child follow, tcatch vfork"}
|
||||||
-re "0x\[0-9a-fA-F\]*.*vfork.*$gdb_prompt "\
|
-re "0x\[0-9a-fA-F\]*.*(vfork|__kernel_v?syscall).*$gdb_prompt "\
|
||||||
{pass "vfork child follow, tcatch vfork"}
|
|
||||||
-re "0x\[0-9a-fA-F\]*.*_vfork.*$gdb_prompt "\
|
|
||||||
{pass "vfork child follow, tcatch vfork"}
|
{pass "vfork child follow, tcatch vfork"}
|
||||||
-re "$gdb_prompt $" {fail "vfork child follow, tcatch vfork"}
|
-re "$gdb_prompt $" {fail "vfork child follow, tcatch vfork"}
|
||||||
timeout {fail "(timeout) vfork child follow, tcatch vfork"}
|
timeout {fail "(timeout) vfork child follow, tcatch vfork"}
|
||||||
@ -319,6 +321,10 @@ proc tcatch_vfork_then_child_follow {} {
|
|||||||
gdb_expect {
|
gdb_expect {
|
||||||
-re "Run till exit from.*vfork.*${srcfile}:12.*$gdb_prompt "\
|
-re "Run till exit from.*vfork.*${srcfile}:12.*$gdb_prompt "\
|
||||||
{pass "vfork child follow, finish after tcatch vfork"}
|
{pass "vfork child follow, finish after tcatch vfork"}
|
||||||
|
-re "Run till exit from.*__kernel_v?syscall.*0x\[0-9a-fA-F\]* in vfork .*$gdb_prompt " {
|
||||||
|
send_gdb "finish\n"
|
||||||
|
exp_continue
|
||||||
|
}
|
||||||
-re "Run till exit from.*vfork.*${srcfile2}:9.*$gdb_prompt "\
|
-re "Run till exit from.*vfork.*${srcfile2}:9.*$gdb_prompt "\
|
||||||
{pass "vfork child follow, finish after tcatch vfork (followed exec)"}
|
{pass "vfork child follow, finish after tcatch vfork (followed exec)"}
|
||||||
-re "$gdb_prompt $" {fail "vfork child follow, finish after tcatch vfork"}
|
-re "$gdb_prompt $" {fail "vfork child follow, finish after tcatch vfork"}
|
||||||
|
Reference in New Issue
Block a user