Hi Luis,
On Fri, Jun 5, 2020 at 12:50 AM Luis Machado luis.machado@linaro.org wrote:
1 - x86-64 seems to get an extra SIGSTOP when we single-step over the vfork syscall, though this doesn't seem to do any harm.
Is it possible that on arm64 you attached to the original tracee using PTRACE_SEIZE, but used some other method on x86-64? That would explain this difference.
2 - This is the one that throws GDB off. In the last single-step request, arm64 gets a SIGCHLD instead of the SIGTRAP x86-64 gets.
I believe this is ok. The timing of SIGCHLD is not guaranteed, so it's allowed to pre-empt the single step. I have seen some differences in signal delivery order on arm64, but I believe it just comes down to scheduling and performance differences between the systems, since these interactions are a bit racy.
Keno