インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
次の表は、ポインターチェッカーのさまざまな関連項目を要約したものです。
項目 | 説明 |
コンパイラー・オプション: | |
/Qcheck-pointers:[none | write | rw] (Windows*) -check-pointers=[none | write | rw] (Linux*) |
ポインターチェッカーを有効にして関連ライブラリーを追加します。 このコンパイラー・オプションは、ポインターによる間接アクセスと配列へのアクセスのチェックを有効にします。 ポインターチェッカーはデフォルトでオフです。 none を指定すると、ポインターチェッカーを無効にします。 write を指定すると、ポインターの書き込みのみ範囲をチェックします。 rw を指定すると、ポインターの読み取りと書き込みの両方で範囲をチェックします。 コンパイラーは、最適化中のアクセスが安全であることを確認した後、ポインターのチェックコードを削除します。 詳細は、「範囲のチェック」を参照してください。 |
/Qcheck-pointers-dangling:[none | heap | stack | all] (Windows*) -check-pointers-dangling=[none | heap | stack | all] (Linux*) |
ダングリング・ポインターの参照のチェックを有効にします。 注このオプションを使用するには、/Qcheck-pointers または -check-pointers オプションも指定する必要があります。 デフォルトは、ダングリング・ポインターの参照のチェックを行いません。 none を指定すると、ダングリング・ポインターの参照のチェックを無効にします。 heap を指定すると、ヒープでダングリング・ポインターの参照をチェックします。 stack を指定すると、スタックでダングリング・ポインターの参照をチェックします。 all を指定すると、ヒープとスタックの両方でダングリング・ポインターの参照をチェックします。 詳細は、「ダングリング・ポインターのチェック」を参照してください。 |
/Qcheck-pointers-undimensioned[-] (Windows*) -[no-]check-pointers-undimensioned (Linux*) |
次元のない配列の範囲のチェックを有効にします。 注このオプションを使用するには、/Qcheck-pointers または -check-pointers オプションも指定する必要があります。 詳細は、「配列のチェック」を参照してください。 |
組込み関数: | |
void * __chkp_lower_bound(void **) | ポインターの下限を返します。 「ラッパーの記述」を参照してください。 |
void * __chkp_upper_bound(void **) | ポインターの上限を返します。 「ラッパーの記述」を参照してください。 |
void * __chkp_kill_bounds(void *p) | 範囲情報を削除して、引数で指定したポインターがすべてのメモリーにアクセスできるようにします。この関数は、ポインターの範囲を指定できないイネーブルモジュールで使用される非イネーブルモジュールのポインターに使用します。 関数は、非イネーブルモジュールから作成されたポインターが、同じメモリーアドレスにあった別のポインターの範囲を継承しないことを保証します。 戻り値は範囲情報のないポインターです。 詳細は、「イネーブルモジュールと非イネーブルモジュールの使用」を参照してください。 |
void * __chkp_make_bounds(void *p, size_t size) |
以前に割り当てられていた範囲情報を置換して、引数のポインターに割り当てられたメモリーアドレス内に新しい範囲情報を作成します。 新しい範囲は次のようになります。 p = __chkp_make_bounds(q, size) // lower_bound(p) = (char *)q // upper_bound(p) = lower_bound(p) + size 詳細は、「カスタム・メモリー・アロケーターのチェック」を参照してください。 |
レポート関数: | |
void __chkp_report_control(__chkp_report_option_t option, __chkp_callback_t callback) | エラーのレポート方法を指定します。 詳細は、「範囲外エラーの特定とレポート」を参照してください。 |
列挙子: | |
__chkp_report_option_t |
範囲外エラーのレポート方法を制御します。この列挙子は、chkp.h ヘッダーファイルで宣言されています。 詳細は、「範囲外エラーの特定とレポート」を参照してください。 |
環境変数: | |
INTEL_CHKP_REPORT_MODE |
ランタイムにポインターチェッカーのレポートモードを変更します。 詳細は、「範囲外エラーの特定とレポート」を参照してください。 |
ヘッダーファイル: | |
chkp.h |
組込み関数とレポート関数を定義します。ヘッダーファイルは <install-dir>\include ディレクトリーにあります。 |