{category}

Linux - デバッグツール

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に関するよくある質問

Q. ltraceとstraceの違いは?
A. ltraceはライブラリ関数呼び出しを追跡し、straceはシステムコールを追跡します。ltraceはプログラムがどのライブラリ関数を使用しているかを示すのに対し、straceはプログラムがOSとどう相互作用しているかを示します。
Q. ltraceで特定の関数だけ追跡できる?
A. はい、-e オプションを使用して特定の関数のみを追跡できます。例えば、'ltrace -e malloc ls' とすると、'ls' コマンドが実行中に呼び出す malloc 関数のみを追跡します。
Q. ltraceの出力を解釈するコツは?
A. ltraceの出力を解釈するコツは、関数名、引数、戻り値に注目することです。各行は通常「関数名(引数) = 戻り値」の形式になっています。時間情報を含めたい場合は -t オプションを使用し、詳細な情報が必要な場合は -v オプションを使用します。

ltraceが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Linuxのltraceやjournalctl、free、uptime、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

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」カテゴリーが追加されましました!


関連するそのほかの単語

journalctl

システムログ表示・管理

種類: ログ管理

free

メモリ使用状況の表示

種類: システム情報表示

uptime

システムの稼働時間を表示

種類: システム情報表示

top

リアルタイムプロセス監視

種類: プロセス管理

mkfs

ファイルシステム作成

種類: ディスク管理