ltrace
エルトレース(システムモニタリングとトラブルシューティング)
意味 ライブラリ呼び出しの追跡
ltraceとは?
ltraceは、プログラムが行うライブラリ関数の呼び出しを追跡するLinuxのデバッグツールです。プログラムの動作を詳細に分析し、ライブラリ関連の問題を特定するのに役立ちます。
ltraceの具体的な使い方
基本的なライブラリ関数追跡
$ ltrace ls
👇出力結果
ls->__libc_start_main(0x55ae99b54550, 1, 0x7ffca9ddeef8, 0x55ae99b546e0 <unfinished ...>
strrchr("ls", '/') = nil
setlocale(LC_ALL, "") = "en_US.UTF-8
bindtextdomain("coreutils", "/usr/share/locale") = "/usr/share/locale"
textdomain("coreutils") = "coreutils"
...
この例では、'ls'コマンドが実行される際のすべてのライブラリ関数呼び出しを表示します。これにより、'ls'コマンドがどのようにライブラリ関数を使用しているかを詳細に見ることができます。
特定のライブラリ関数の追跡
$ ltrace -e malloc,free ls
👇出力結果
malloc(184) = 0x55e5e2625e70
malloc(208) = 0x55e5e2625f30
free(0x55e5e2625e70) = <void>
malloc(112) = 0x55e5e2625e70
free(0x55e5e2625f30) = <void>
...
この例では、'ls'コマンドの実行中に呼び出される'malloc'と'free'関数のみを追跡します。これにより、メモリ割り当てと解放の動作に焦点を当てて解析できます。
ライブラリ関数の統計情報の取得
$ ltrace -c ls
👇出力結果
% time seconds usecs/call calls function
------ ----------- ----------- --------- --------------------
28.57 0.000040 40 1 __libc_start_main
14.29 0.000020 20 1 setlocale
14.29 0.000020 20 1 bindtextdomain
7.14 0.000010 10 1 textdomain
...
この例では、'ls'コマンドの実行中に呼び出されたライブラリ関数の統計情報を表示します。各関数の呼び出し回数や処理時間などが表示され、プログラムの動作分析に役立ちます。
ltraceに関するよくある質問
ltraceが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Linuxのltraceやjournalctl、free、uptime、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Linuxを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Linuxはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!