ARM Linux環境でptrace使ってバックトレース

タイトルそのまんまの記事です。

やりたいことは、ARMの上で動いているLinuxデバッグしたい。
デバッグといっても、デバッガ突っ込めるわけじゃない(gdbserverとか使えない)環境で、
とりあえずSIGSEGVくらいは何とかして潰したいよねという感じ。

で、じゃぁどうにかしましょうということで、ptraceを使って異常終了をキャッチして、
その場でえいやーっとバックトレースまで吐き出すコードを書いてみました。
バックトレースを解析するところは、libunwindを使っています。
libunwindありがたやありがたや。

もちろんARM環境限定です。
ということでコードは↓にあります。


https://gist.github.com/4122796


ご自由にご利用ください。

# 動かないとかコンパイルできないとかは、いつもどおり自己責任で宜しくお願いします。