C++ アプリケーションにGoogle-Breakpadを統合しました。現在、意図的にアプリケーションをクラッシュさせていますが、Ubuntu i686 システムでハングアップします。printf
どこにぶら下がっているかを正確に確認するには、Breakpad のどこにでも配置する必要があります。そのため、ブレークパッドでは、クローンの子プロセスが作成され、そのプロセスでは、syscall にptrace(PTRACE_ATTACH, pid, NULL, NULL)
続いてwaitpid(pid, NULL, __WALL)
、すべてのスレッドで呼び出されます。ある特定のスレッドで、waitpid が無限待機状態になり、故意にアプリケーションを強制終了する必要があります。
なぜこれが正確に起こっているのか誰にも分かりますか?この特定のスレッドwaitpid()
が無限待機状態になるのはなぜですか? 同じ解決策はありますか?
ありがとう。