straceしてみようかな。。。

興味でBINARY HACKS買ってちょっと読んでしばらく放置していたんですけど(あまりに濃い内容で)
システムコールのことを調べてて、全部読まなくてもちょっとずつ理解できる部分だけ読んで行こうかなと思いました。

で straceでシステムコールをトレースする と言うのをためしてみようかなと思います。

Apache+Catalyst+FCGIでたまにレスポンスがこない。
F5の再読み込みだと元気に起動

みたいな挙動をしていて
どっかのタイミングでstraceを仕込みたいなーと思ってます。

ちなみに  strace perl script/myapp_server.pl -r
すると

execve("/usr/bin/perl", ["perl", "script/myapp_server.pl", "-r"], [/* 45 vars */])
・・・
略(わーっとログ)
・・・
でいつもの[debug]ログ
・・・
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
setsockopt(4, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(4, {sa_family=AF_INET, sin_port=htons(3000), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
listen(4, 128) = 0
write(1, "You can connect to your server a"..., 58You can connect to your server at http://localhost:3000
) = 58
accept(4,

わー
soket開いて、soketオプション設定して、バインドして、ポートにlisten命令して、writeして、acceptシステムコールで待ち構えてるわーみたいなことがわかるなー。