メモリリークのチェックのときの覚書

ここでは、「メモリリークのチェックのときの覚書」 に関する記事を紹介しています。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
以下、C言語を念頭に。

確保、開放時に以下のものの対応が取れていることを確認する。
●先頭アドレス
●大きさ
●型


ダングリングポインタ(dangling pointer)がないかどうかのチェック。
↓にあるように、ダングリングポインタは危険
セキュリティの深刻な脆弱性につながるダングリングポインタ(TechTarget)
http://techtarget.itmedia.co.jp/tt/news/0711/01/news02.html
メモリ管理の手段として「スマートポインタ」が紹介されいている。
また、ダングリングポインタの回避策として、「トゥームストーン方式」や「ロックアンドキー方式」が紹介されている。


ダングリングポインタの発生パターンは、以下のようなものが考えられる。
●普通に解放後に参照した。(freeするのが早すぎた)
●同じ領域を複数のポインタが参照しているときに、いくつかは開放したものの開放し忘れたポインタでアクセスしようとした。
●マルチスレッドで書いているときに、領域確保する前に別スレッドがそこにアクセスしようとした。
など。


↓にはLinux上でのメモリ管理の話がある。メモリの使用状況の調査、消費量の多いプロセスの絞り方、メモリリークの検出、対策が紹介されている。
Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)
http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html
メモリリークの検出方法として
* free, top か ps で使用メモリが急速に増大していないか確認
* Boehm GC を leak detector として使う
* ccmalloc
* dmalloc
* mpatrol
が紹介されている。


memprofはLinux上で動作するGUIのメモリプロファイラ。以下のページに簡単な使い方とともに紹介されいている。
Cプログラミングのメモ
http://people.redhat.com/otaylor/memprof/
スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://tekitobibouroku.blog42.fc2.com/tb.php/12-921c91fb
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。