whocalls [-l wholib] [-s] funcname executable [arguments]...
whocalls は、特定の関数呼び出しの追跡を許可する ld.so.1(1) の Link-Auditing 機能に基づいたユーティリティーの簡単な例です。Link-Auditing メカニズムの詳細は、Oracle Solaris 11.2 リンカーとライブラリガイド を参照してください。executable は、関連する引数を使用して通常どおりに実行されます。プロシージャ funcname が呼び出されるたびに、そのプロシージャへの引数とスタックトレースの両方が標準出力に表示されます。
サポートしているオプションは、次のとおりです。
使用する代替の who.so Link-Auditing ライブラリを指定します。
使用可能な場合、ローカルシンボル用の .symtab シンボルテーブルを検証して使用します。これは、.dynsym シンボルテーブルを使用するよりも少し負荷がかかりますが、より詳細なスタックトレース情報を生成できます。
次の例では、単純な helloworld プログラムで作成された printf() の呼び出しを追跡します。
example% whocalls printf helloworld printf(0x106e4, 0xef625310, 0xef621ba8) helloworld:main+0x10 helloworld:_start+0x5c Hello World
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|