straceコマンド

 

straceコマンドがなければ設置

yum install strace

 

プロセスが利用するシステムコールや受信するシグナルなどを追跡(トレース)するコマンドです。

ネットワーク関連のシステムコールだけを追跡 -e trace=network
システムコールが処理にかかった時間が出力 -r
トレース結果にタイムスタンプを出力 -t
トレース結果を出力するファイル名を指定 -o
複数のシステムコールをトレースする場合 -e trace=open,read
PID を指定 -p
それぞれのシステムコールに 費やした時間が計算 -c
特定のプロセスに対して、それらの子プロセスもあわせて監視 -f
   
   

 

 

/data/tmp/c/st1.c

 

ちなみにsorarisにstraceと該当するコマンドはtrussがある

 

簡単に見るコツ

straceを打って何かが出ればそれは処理中。何もでてないとハングアップした可能性がありのような切り分けもあり

 

使用例

strace -p 23912

23912というhttpdプロセスが

待つ →受ける →待つ →次のやつ受ける

この流れで動いてるのがわかる

 

 

参考したページ:

http://www.oreilly.co.jp/editors/debug_hacks_43.pdf

http://blog.livedoor.jp/sonots/archives/18193659.html

http://d.hatena.ne.jp/jitsu102/20111231/1325322559

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です