whocalls - 特定のプロシージャの呼び出しに関する報告
whocalls [-l wholib] [-s] funcname executable [arguments]...
whocalls は、特定の関数呼び出しの追跡を許可する ld.so.1(1) の Link-Auditing 機能に基づいたユーティリティーの簡単な例です。監査に関する詳細は、Runtime Linker Auditing Interface in Oracle Solaris 11.4 Linkers and Libraries Guideを参照してください。
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(7) を参照してください。
|