Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

sotruss(1)

名前

sotruss - 共有ライブラリプロシージャ呼び出しの追跡

形式

/usr/bin/sotruss [-f] [-F bindfromlist] [-T bindtolist] 
     [-o outputfile] executable [executable arguments...]

説明

sotruss は、指定されたコマンドを実行し、実行したライブラリ呼び出しのトレースを生成します。トレース出力の各行では、各プロシージャ呼び出しが実行されたときに動的オブジェクト間で発生する結合が報告されます。sotruss は、プロシージャリンケージテーブルを介して動的オブジェクト間で発生するすべてのプロシージャ呼び出しを追跡します。そのため、そのプロシージャリンケージテーブルを介して結合されているプロシージャ呼び出しだけが追跡されます。Oracle Solaris 11.4 Linkers and Libraries Guideを参照してください。

オプション

–F bindfromlist

追跡するライブラリのコロンで区切られたリスト。これらのライブラリからの呼び出しだけが追跡されます。デフォルトでは、メインの実行可能オブジェクトからの呼び出しだけが追跡されます。

–T bindtolist

追跡するライブラリのコロンで区切られたリスト。これらのライブラリへの呼び出しだけが追跡されます。デフォルトでは、すべての呼び出しが追跡されます。

–o outputfile

sotruss の出力を outputfile に送ります。このオプションを –f オプションと組み合わせると、実行しているプログラムの pid がファイル名の後ろに付けられます。デフォルトでは、sotruss の出力は stderr に書き込まれます。

–f

fork() によって作成されたすべての子プロセスを追跡し、各子プロセスの truss 出力を書き込みます。このオプションを指定すると、各 truss の出力行に pid が出力されます。

使用例 1 sotruss の例。

次の簡単な例では、単純な ls コマンドの追跡を示します。

% sotruss ls
ls  ->  libc.so.1:*atexit(0xef7d7d1c, 0x23c00, 0x0)
ls  ->  libc.so.1:*atexit(0x1392c, 0xef7d7d1c, 0xef621bb0)
ls  ->  libc.so.1:*setlocale(0x6, 0x1396c, 0xef621ba8)
ls  ->  libc.so.1:*textdomain(0x13970, 0x1396c, 0xef621ba8)
ls  ->  libc.so.1:*time(0x0, 0xef61f6fc, 0xef621ba8)
ls  ->  libc.so.1:*isatty(0x1, 0xef61f6fc, 0x0)
ls  ->  libc.so.1:*getopt(0x1, 0xeffff8fc, 0x13980)
ls  ->  libc.so.1:*malloc(0x100, 0x0, 0x0)
ls  ->  libc.so.1:*malloc(0x9000, 0x0, 0x0)
ls  ->  libc.so.1:*lstat64(0x23ee8, 0xeffff7a0, 0x0)
...
ls  ->  libc.so.1:*printf(0x13a64, 0x26208, 0x23ef0)
ls  ->  libc.so.1:*printf(0x13a64, 0x26448, 0x23ef0)
ls  ->  libc.so.1:*exit(0x0, 0x24220, 0x2421c)

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
developer/base-developer-utilities

関連項目

ld.so.1(1), truss(1), whocalls(1), fork(2), attributes(7)

OracleSolaris 11.4 リンカーとライブラリガイド