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があるSolarisからの移植 dtrace(1) Mac OS X Manual Page WindowsのStraceNTStraceNTとAPI MonitorAPI Monitor

脚注

関連項目

ktrace ltrace lsof gdb

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