Menu Close
Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
20.3.3. ltrace でのアプリケーションのライブラリー関数呼び出しの監視
ltrace
ツールは、ライブラリー (共有オブジェクト) で利用可能な関数に対するアプリケーションの呼び出しを監視できます。
前提条件
手順
- 可能であれば、対象のライブラリーおよび関数を特定します。
監視するプログラムが実行されていない場合には、
ltrace
を起動して、プログラム を指定します。$ ltrace -f -l library -e function program
-e
および-l
のオプションを使用して、出力をフィルタリングします。-
function として表示される関数の名前を指定します。
-e function
オプションは複数回使用できます。何も指定しない場合は、ltrace
はすべての関数への呼び出しを表示します。 -
関数を指定するのではなく、
-l library
オプションでライブラリー全体を指定することができます。このオプションは、-e function
オプションと同じように動作します。
詳細情報は、man ページの ltrace(1) を参照してください。
プログラムがすでに実行中の場合は、プロセス id (pid) を検索して、その id に
ltrace
を割り当てます。$ ps -C program (...) $ ltrace ... -ppid
フォークしたプロセスまたはスレッドを追跡しない場合には、
-f
オプションは指定しないでください。-
function として表示される関数の名前を指定します。
ltrace
はアプリケーションのライブラリー呼び出しを表示します。多くの場合、アプリケーションは大量の呼び出しを作成し、フィルターが設定されていない場合には、
ltrace
の出力がすぐに表示されます。ltrace
は、プログラムが終了すると終了します。追跡しているプログラムの終了前に監視を中断するには、ctrl+C を押します。
-
ltrace
でプログラムを起動した場合には、プログラムはltrace
と共に中断します。 -
実行中のプログラムに
ltrace
を割り当てると、プログラムはltrace
と共に終了します。
-
アプリケーションが実行したライブラリー呼び出しの一覧を分析します。
- アプリケーションがクラッシュした場合に、重要な情報はおそらく、ログの最後に表示されます。
- 出力には不要な情報が多く含まれています。ただし、より正確なフィルターを作成して、手順を繰り返すことができます。
出力を確認することにも、ファイルに保存することにも利点があります。これを実行するには、tee
コマンドを使用します。
$ ltrace ... |& tee your_log_file.log
関連資料
- strace(1) man ページ
- 『Red Hat Developer Toolset User Guide』: ltrace