メモリデバッガーは、メモリ リークやバッファ オーバーフローなどのソフトウェア メモリの問題を検出するためのデバッガーです。これらは、動的メモリの割り当てと割り当て解除に関連するバグが原因で発生します。マネージ コードなどのガベージコレクションを備えた言語で記述されたプログラムでも、コレクション内の「生きた」参照によるメモリ リークなどを検出するためにメモリ デバッガーが必要になる場合があります。
概要
メモリ デバッガーは、メモリのアクセス、割り当て、および解放を監視することで機能します。多くのメモリ デバッガーでは、アプリケーションを特別な動的メモリ割り当てライブラリで再コンパイルする必要があります。これらのライブラリの API は、従来の動的メモリ割り当てライブラリとほぼ互換性があります。または、動的リンクを使用します。Electric Fenceは、 mallocを使用してメモリ割り当てをデバッグするデバッガーです。一部のメモリ デバッガー ( Valgrindなど) は、仮想マシンのような環境で実行可能ファイルを実行し、メモリのアクセス、割り当て、および解放を監視することで機能します。そのため、特別なメモリ割り当てライブラリで再コンパイルする必要はありません。
メモリリークなどのメモリの問題は、特定の条件下でなければ現れない場合があるため、発見に非常に時間がかかります。メモリの誤用を検出するツールを使用すると、プロセスがはるかに高速かつ簡単になります。[1]
異常に高いメモリ使用率はソフトウェアの老朽化の一因となる可能性があるため、メモリ デバッガーはプログラマーがコンピュータ システムのメモリを使い果たすソフトウェアの異常を回避するのに役立ち、長い実行時間でもソフトウェアの高い信頼性を確保します。
静的アナライザーとの比較
一部の静的解析ツールもメモリエラーの検出に役立ちます。メモリデバッガーはアプリケーションの実行中にアプリケーションの一部として動作しますが、静的コード解析はコードを実行せずに解析することで実行されます。これらの異なる手法では通常、異なる問題が検出され、両方を併用すると最良の結果が得られます。[2]
メモリデバッグツールのリスト
これはメモリのデバッグに役立つツールのリストです。プロファイラーはメモリ デバッガーと組み合わせて使用できます。
参照
参考文献
- Michael C. Daconta: C++ ポインターと動的メモリ管理、John Wiley & Sons、ISBN 0-471-04998-0
- アンドリュー・ケーニッヒ:C の罠と落とし穴、アディソン・ウェズリー、ISBN 0-201-17928-8
- ^ 「レビュー: Linux コーディング用の 5 つのメモリ デバッガー」。2015 年 11 月 20 日。2017 年8 月 24 日閲覧。
- ^ 「動的分析と静的分析」。2017年8月24日閲覧。
- ^ 「マネージド コード - AQtime Pro | SmartBear」。2013 年 9 月 19 日時点のオリジナルよりアーカイブ。2013 年 1 月 14 日閲覧。
- ^ ab 「Daikon 不変量検出器ユーザーマニュアル」。
- ^ 「Daikon 不変量検出器ユーザーマニュアル」。
外部リンク
- イワン・スカイッテ・ヨルゲンセン著「記憶のバグを狩る」
- 「空きメモリ チェッカーの比較」 Jean-Philippe Martin 著[全文引用が必要]
