katsuhiro -> katsuhiro/refmon -> katsuhiro/refmon/execve
sys_execve に関すること†
ptrace で監視されているときの sys_execve の動作†
ptrace で監視されているときは実行直後に SIGTRAP が送られるため、sys_execve のあと最初にくる SIGTRAP は無視している。
- 問題: ブレークポイント/トラップエラーで落ちるソフトウェアがある。
- 問題発生の流れ: make がトラップを受け取ったと言って落ちる。なぜか調べたら子プロセスに sh が居て sys_execve を発行していた。
- 原因: sys_execve の後に SIGTRAP が送られるため。
- 解決: sys_execve のあと一回目の SIGTRAP は無視する。
- 参考: (manpage execve より)もし元のプログラムが ptrace されていると、execve() が成功した後にそのプログラムに SIGTRAP が送られる。