fc2ブログ

malloc使用時のメモリリーク調査、デバッグメモ

ここでは、「malloc使用時のメモリリーク調査、デバッグメモ」 に関する記事を紹介しています。

メモ.リリークの調査をするときのメモ。

メモリリーク検出:mtrace編 より要約

gccの場合、mtraceというツールが使える。
使用手順は
1.環境変数:MALLOC_TRACE=[ログファイル名]を設定
2.プログラム改造:関数 mtrace()、 muntrace() を挿入。(この間のmalloc, freeがカウントされる)
3.コンパイル: -g オプションをつける。(gcc -g hoge.c)
4.ログ解析:mtrace [プログラム名] [ログファイル名]


簡易mallocデバッグメモには、mallocがらみの環境変数の解説等が載っている



Linuxのデバッグ手法をマスターする」では各種ツールの有効な利用方法がまとめられている。

本稿では、Linuxプログラムをデバッグするための4通りのシナリオを紹介します。シナリオ1では、メモリー割り当ての問題を扱うサンプル・プログラムを2つ使用します。MEMWATCHYet Another Malloc Debugger (YAMD) というツールを使ってデバッグを行います。シナリオ2では、Linuxのstraceユーティリティーを使用します。このユーティリティーでは、システム・コールとシグナルをトレースすることで、プログラムの問題箇所を検出することができます。シナリオ3では、LinuxカーネルのOops機能を使って、セグメンテーション障害を解決するとともに、同じ問題をGNUデバッガー (gdb) で解決するために、カーネル・ソース・レベル・デバッガー (kgdb) をセットアップする方法を紹介します。kgdbプログラムは、シリアル接続経由でのLinuxカーネル・リモートgdbです。シナリオ4では、Linuxで利用できるmagic key sequenceを使って、ハングアップを起こしているコンポーネントについての情報を表示します。

目次:
一般的なデバッグ方針
シナリオ1: メモリー・デバッグ・ツール
  MEMWATCH
  YAMD
  Electric Fence
シナリオ2: straceの利用
シナリオ3: gdbおよびOopsの利用
  kgdb
  kgdbを使ってカーネルの問題をデバッグする
  Oops分析
  kdb
シナリオ4: magic key sequenceを使ってバック・トレースを行う
結論
参考文献
著者について
記事の評価

メモリーとカーネルに関する便利なデバッグ・ツール

Linuxでデバッグ・ツールを使ってユーザー・スペースやカーネルの問題を追跡するには、いろいろな方法があります。以下に列挙したツールや手法を使ってソース・コードをビルドし、デバッグします。

ユーザー・スペース用のツール:

  • メモリー・ツール: MEMWATCH、YAMD
  • strace
  • GNUデバッガー (gdb)
  • Magic key sequence

カーネル用のツール:

  • カーネル・ソース・レベル・デバッガー (kgdb)
  • 内蔵のカーネル・デバッガー (kdb)
  • Oops
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://tekitobibouroku.blog42.fc2.com/tb.php/43-c0270673
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
メモリリークが発生しているっぽいので、gccで使えるmtraceというメモリリーク検出ツールを試してみた。 mtraceはこんなツールです。 1) malloc,freeなどのメモリ管理関数から、メモリリークを追跡 してくれるツール 2) GNU mallocライブラリ付属関数なので、新たなパッケー
2008/10/16(木) | Akio’s Log
管理人の承認後に表示されます
2016/12/02(金) |