UNIX/Linuxの部屋 trussコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド truss プログラム中のシステムコール呼び出し部分をトレース このエントリーをはてなブックマークに追加

プログラム中で、システムコールを呼び出している部分を表示する。SystemV 系 OS には昔から存在するらしいが、FreeBSD では 3.3-RELEASE で実装された。

アプリケーションがうまく動かないとき、原因を特定するのに非常に便利。「file not found」などというメッセージを表示して終了してしまうプログラムに truss を使うと、どのファイルをオープンしようとしたのかがわかる。

システムコールというのは、マニュアルのセクション2に属する関数群のこと。セクション3の関数はライブラリルーチンなので、truss では表示されない。例えば open は表示されるが fopen は truss では見ることができない、ということ。ただし fopen ライブラリの中から open が呼ばれるので、その情報を見ることができる。

Linux では strace というコマンドで同様の機能が提供されている。
>> Solaris10オンラインマニュアル(man) Solaris10 truss(1)
>> FreeBSDオンラインマニュアル(man) FreeBSD truss(1)