10.2.2. 選択したライブラリー呼び出しの追跡
選択したライブラリーコールのセットのみを追跡するには、-e
コマンドラインオプションを指定して ltrace
ユーティリティーを実行します。
$ scl enable devtoolset-10 'ltrace -e expression program argument...'
expression をルールチェーンに置き換え、トレースするライブラリー呼び出しを指定します。ルールは、シンボル名 (malloc
または free
など) と、ライブラリー SONAME (libc.so
など) を識別するパターンで構成されています。たとえば、malloc
および free
関数への呼び出しを追跡し、libc
ライブラリーが実行したものを省略するには、以下のコマンドを実行します。
$ scl enable devtoolset-10 'ltrace -e malloc+free-@libc.so* program'
例10.2 選択したライブラリー呼び出しの追跡
ls
コマンドを考慮します。このプログラムで ltrace
ユーティリティーを実行し、opendir
、readdir
、および closedir
関数呼び出しでのみトレースします。
$ scl enable devtoolset-10 'ltrace -e opendir+readdir+closedir ls'
ls->opendir(".") = { 3 }
ls->readdir({ 3 }) = { 61533, "." }
ls->readdir({ 3 }) = { 131, ".." }
ls->readdir({ 3 }) = { 67185100, "BUILDROOT" }
ls->readdir({ 3 }) = { 202390772, "SOURCES" }
ls->readdir({ 3 }) = { 60249, "SPECS" }
ls->readdir({ 3 }) = { 67130110, "BUILD" }
ls->readdir({ 3 }) = { 136599168, "RPMS" }
ls->readdir({ 3 }) = { 202383274, "SRPMS" }
ls->readdir({ 3 }) = nil
ls->closedir({ 3 }) = 0
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
+++ exited (status 0) +++
利用可能なフィルター式の詳細は、ltrace(1) man ページを参照してください。