我在我的 C++ 应用程序中集成了Google-Breakpad 。现在,我故意让应用程序崩溃,但它在我的 Ubuntu i686 系统中挂起。我必须printf
在 Breakpad 中的任何地方放置以检查它到底挂在哪里。因此,在 breakpad 中,正在创建一个克隆子进程,并且在该进程中ptrace(PTRACE_ATTACH, pid, NULL, NULL)
,waitpid(pid, NULL, __WALL)
每个线程都会调用系统调用。随着一个特定的线程waitpid进入无限等待状态,然后我不得不故意杀死应用程序。
有谁知道为什么会发生这种情况?为什么这个特定线程waitpid()
处于无限等待状态?有没有相同的解决方案?
谢谢。