Strace

straceはLinuxのデバッグユーティリティであり、プログラムが使用するシステムコールおよび受け取るシグナルを監視するものである。他のUnixシステムにおける「truss」に類似している。これはカーネルのptraceという機能により実現されている。

Cygwinにおいても類似のユーティリティが提供されている。

使用法 
一般的な使用法として、プログラムをstraceを用いて開始し、これによりそのプログラムが呼ぶシステムコールの一覧が出力される。これはプログラムが頻繁にクラッシュしたり、意図したものとは異なる挙動をするときに有用である。straceを用いることにより、一例として、プログラムが存在しないファイルあるいは読み込むことができないファイルにアクセスしようとしていることが判明するということがある。

また、別の使用法として、-pフラグを用いることにより、実行中のプロセスにattachするというものがある。これはプロセスが応答しなくなったときに有用である。この場合の一例として、プロセスがネットワーク接続を確立する途中でブロックされていることが判明するということがある。

straceはシステムコールのみを出力するため、gdbのようなデバッガと比較して検知できる問題は限られる。しかし、デバッガより使用が容易であり、システム管理者が使用するには非常に有用なツールである。

類似のツール 
他のOSには以下の類似のデバッグツールがある。
 2006年以降のLinuxにおけるSystemTap
 Solaris上のTrussとDTrace
 FreeBSDのTrussコマンド、ktraceおよびDTrace
 Mac OS X v10.4以前ではktraceが、Mac OS X v10.5以降はDTraceがある
 WindowsのStraceNTとAPI Monitor

脚注

関連項目 

 ktrace
 ltrace
 lsof
 gdb

外部リンク 
プロジェクトページ
Man page
straceに関するOS Reviews記事

UNIXのソフトウェア
Linux