インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド

ポインターチェッカーの概要

ポインターチェッカーは、Windows* または Linux* ベースのアプリケーションでバッファー・オーバーランの検出を支援するデバッグ機能です。ポインターによるメモリーアクセスの範囲チェックを行い、ポインターチェッカーが有効なコード範囲外のアクセスを認識します。ポインターチェッカーは、ダングリング・ポインター (解放されたメモリーを指すポインター) を検出することもできます。この検出が有効な場合、間接アクセスでダングリング・ポインターを使用しても範囲外エラーになります。

ポインターチェッカーは、OS X* システムではサポートされていません。

C および C++ 言語は、ポインターのメモリーアクセスのセマンティクスを定義します。ただし、それでも多くのアプリケーションは範囲外のメモリーアクセスを行うことがあります。これらのアクセスは検出できないため、データが破壊されたり、脆弱性を利用した悪意のある攻撃を受ける可能性が高くなります。ポインターチェッカーは、ポインターによるすべてのメモリーアクセスを完全にチェックして、メモリーが破壊される前に範囲外のメモリーアクセスをキャッチします。ポインターチェッカーが有効なコードをコンパイルすると、ポインターチェッカーは範囲外のメモリーアクセスを識別してレポートします。

ポインターチェッカーは、アプリケーションのテストとデバッグに使用するように設計されています。ポインターチェッカーを有効にするとプログラムのオーバーヘッド(サイズや実行時間)が増えるため、リリース版ではポインターチェッカーを無効にしたプログラムを配布します。

アプリケーションには、ポインターチェッカーが有効なコードとそうでないコードの両方を含めることができます。ポインターチェッカーはチェック中に関数のデータ構造レイアウトを変更しないため、コードの共存が可能です。

関連情報


このヘルプトピックについてのフィードバックを送信