Linux から *bsd に移植するデバッガーがあります。現在、私は OpenBSD バージョンに取り組んでいます。
特定の条件下で、配信された信号の詳細を知りたいです。たとえば、SIGSEGV が配信されたとします。エラーが発生したアドレスは何か、可能であれば、それが読み取りまたは書き込みのどちらであったかを知りたいと思います。
別の例として、トラップを受け取った場合、それはシングル ステップ イベントでしたか? または多分INT3オペコード。
Linux では、次のように呼び出してこの情報を取得します。
ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);
これは、信号について知りたい可能性のあるほぼすべてにアクセスできるため、うまく機能します。OpenBSD には同等のものはないようです。kinfo_proc
KVM API を使用してアクセスできるとを調べましたkinfo_proc2
が、siginfo_t と同じタイプの情報を持っているとは思えません。この情報を入手する正しい方法は何でしょうか?