タグ

ブックマーク / www.phactory.jp (1)

  • Phactory: C言語:メモリ破壊検出ツール electric fenceの使い方

    C言語に限らず、プログラム開発においてデバッグに多くの時間がかかるバグの一つとして、 メモリ破壊系バグが挙げられます。このバグは主に確保した配列を飛び越えてデータを書き込むことで 発生します。このようなプログラムは単純にprintf()等でシーケンスでバッグをしても、入力の種類に よって停止する位置が変わったりするので、まったくの無力です。逆にgdbでひとつひとつステップごとに 様々な変数やシーケンスをチェックしだすと、ものすごい時間を浪費します。 そんなとき、大活躍してくれるのがメモリ破壊検出ツールです。 いろんな検出ツールがあると思いますが、C言語で実装しているならば、手軽で実績もある electric fenceを試してみてください。 このツールは、プログラム中の動的配列(malloc等で確保した配列)の開始位置・終了位置を覚えて これらの配列の領域をポインタ等が踏み越えたときに

  • 1