Linuxのデバッグツール一覧と使い方

当ページのリンクには広告が含まれています。

## はじめに
Linuxにはシステムコールトレース、関数呼び出し追跡、メモリ解析、パケットキャプチャまで、多彩なデバッグツールが用意されています。それぞれの得意分野を知り、状況に応じて使い分けることが、トラブルシューティング力を高めるカギです。

本記事では、現場でよく使う主要デバッグツールを目的別に整理し、基本的な使い方を実例付きで紹介します。

## 症状・背景
– プロセスがハングしている原因を調べたい
– ライブラリ関数の呼び出しを追跡したい
– アプリケーションのパフォーマンスボトルネックを特定したい
– 通信が成功しているかパケットレベルで確認したい

[図解画像をここに表示]

## 手順・設定方法
### ステップ1: straceでシステムコール追跡
“`bash
# プロセスのシステムコールを追跡
strace -p $(pgrep nginx | head -1)

# プログラムを起動して追跡
strace -o output.txt ./myapp

# 特定のシステムコールだけ
strace -e trace=open,read,write ./myapp

# 統計情報モード
strace -c ./myapp
“`

### ステップ2: ltraceとgdbで関数追跡
“`bash
# ライブラリ関数呼び出し追跡
ltrace -p $(pgrep myapp)

# gdbでアタッチしてバックトレース取得
sudo gdb -p $(pgrep myapp)
(gdb) bt
(gdb) detach

# coreファイルから解析
gdb ./myapp core
“`

### ステップ3: perfでCPUプロファイル
“`bash
# 全体のCPU使用率プロファイル
sudo perf top

# 特定プロセスで10秒間記録
sudo perf record -p $(pgrep nginx) — sleep 10

# 結果を表示
sudo perf report

# ホットなシステムコールを確認
sudo perf stat -e syscalls:sys_enter_* ./myapp
“`

### ステップ4: tcpdumpとssでネットワーク調査
“`bash
# 特定ポートのパケットを取得
sudo tcpdump -i eth0 -nn port 80 -w capture.pcap

# HTTPリクエストの中身を表示
sudo tcpdump -i any -A ‘tcp port 80’

# 接続中のソケット一覧
ss -tnp

# リッスン中のポート
ss -tlnp
“`

## 注意事項
– straceはオーバーヘッドが大きく、本番環境では一時的な使用に留めます
– gdbでアタッチ中はプロセスが停止するため、影響範囲を考慮します
– perfにはカーネルのデバッグシンボル(debuginfo)が必要な場合があります
– tcpdumpは大量のパケットを生成しがちなのでフィルタで絞り込みます

## まとめ
1. **strace**: システムコールを追跡し、I/O問題やハングを調査
2. **gdb/ltrace**: アプリ内部の関数呼び出しを解析
3. **perf**: CPUのホットスポットをプロファイル
4. **tcpdump/ss**: ネットワーク通信を可視化
5. **使い分け**: 症状に応じて最適なツールを選択

関連記事:
– [Linuxでコマンドの実行時間を計測する方法](/articles/linux-command-time-measure)
– [Linuxでディスク障害を検出するS.M.A.R.T.確認方法](/articles/linux-smart-disk-health)
– [Linuxのkernelparam・カーネルパラメータをsysctlで設定する方法](/articles/linux-sysctl-kernel-params)

▼ 実践ガイド

【2026年】ネット証券口座の選び方とおすすめ比較 →

用語の意味がわかったら、実際の口座選びのポイントもチェックしてみてください。

※本記事に掲載している情報は、中立的な立場からの情報提供を目的としたものです。掲載している商品・サービスの購入や利用を推奨・強制するものではありません。投資には価格変動リスクが伴い、元本割れが生じる可能性があります。過去の運用実績やシュミレーション結果は、将来の運用成果を保証するものではありません。また、情報の正確性・最新性には十分配慮しておりますが、 内容の完全性や将来の結果を保証するものではありません。最終的な投資判断は、読者ご自身の判断と責任において行っていただくようお願いいたします。本記事の情報を利用したことによって生じたいかなる損害についても、当サイトでは一切の責任を負いかねますので、あらかじめご了承ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

マネジ局長は、「お金の大辞典」全体を統括する監修者です。

編集者であるマネ辞くんが収集・整理した金融・投資・税制データについて、制度の前提条件やリスク、誤解が生じやすい点がないかをチェックし、「この情報をどう受け取るべきか」という判断軸を補足します。

特定の商品やサービスをすすめる役割ではなく、読者が冷静に考えるためのブレーキ役として設計されています。

お金の判断は急がず、理解してから選ぶ。
それがマネ辞局長の基本スタンスです。

目次