- 物理的な障壁については、電気柵を参照してください。
Electric Fence (またはeFence ) は、Bruce Perensによって書かれたメモリ デバッガーです。これは、プログラマーがコードにリンクしてC 標準ライブラリのメモリ管理関数をオーバーライドできるライブラリで構成されています。eFence は、メモリ エラーが発生するとプログラム クラッシュをトリガーするため、デバッガーを使用してエラーの原因となったコードを検査できます。
Electric Fence は、次の 2 つの一般的なタイプのプログラミング バグを検出することを目的としています。
- 動的に割り当てられたバッファの最後(または最初)をオーバーランする
- 動的に割り当てられたバッファをヒープに戻した後で使用する
どちらの場合も、Electric Fence は、セグメンテーション違反によってエラーのあるプログラムを直ちに中止させます。通常、これらの 2 つのエラーはヒープ破損を引き起こし、それはずっと後になってから、通常は無関係な形で現れます。したがって、Electric Fence は、プログラマーがメモリ プログラミング エラーの正確な場所を見つけるのに役立ちます。
Electric Fence は、割り当てられたバッファごとに少なくとも 2 ページ (多くの場合 8KB) を割り当てます。一部の操作モードでは、解放されたバッファの割り当てを解除しません。したがって、Electric Fence はデバッグ中のプログラムのメモリ要件を大幅に増加させます。このため、プログラマーは、可能な場合は Electric Fence を小さなプログラムに適用し、Electric Fence を製品コードにリンクしたままにしないことが推奨されます。
Electric Fence は、GNU General Public Licenseに基づいてライセンスされたフリーソフトウェアです。
参照
外部リンク
- Ubuntu からの Electric Fence 2.2.4 ソースコード
- DUMA – Windowsでも動作するElectric Fenceのフォーク
- eFence-2.2.2 – 電気柵 2.2.2 ソースの rpm
