strace
ウィキペディアから無料の百科事典
作者 | Paul Kranenburg |
---|---|
開発元 | Roland McGrath, Dmitry Levin |
最新版 | 5.10 / 2020年12月14日 |
リポジトリ | |
プログラミング 言語 | C言語 |
対応OS | Linux |
プラットフォーム | クロスプラットフォーム |
サポート状況 | 開発中 |
種別 | デバッグツール |
ライセンス | BSDライセンス |
公式サイト | http://sourceforge.net/projects/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がある[1]
- WindowsのStraceNT[2]とAPI Monitor[3]
脚注
[編集]- ^ Solarisからの移植 dtrace(1) Mac OS X Manual Page
- ^ StraceNT
- ^ API Monitor