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

ランタイム・ライブラリー関数のチェック

ポインターチェッカーは、ポインターを使用してメモリー操作を行う C ランタイム・ライブラリー関数をチェックします。ランタイム・ライブラリーを置換するか、適切なポインター・チェック・メカニズムでラップする関数のライブラリーを使用します。

malloc() 関数やさまざまな C++ new 関数のようにメモリーを割り当てる関数の場合、ラッパー関数はメモリー・アロケーターによって返されたポインターの範囲情報を作成します。

memcpy() 関数のようにメモリーをコピーする関数の場合、メモリーアドレスにポインターと (ポインターに関連付けられている) 範囲情報が含まれます。 ラッパー関数は範囲外アクセスをチェックして、コピーされるメモリーに関連付けられている範囲もコピーされることを保証します。

ポインターチェッカーの C ランタイム関数ラッパーは libchkpwrap ライブラリーにあります。 C ランタイムルーチンがラップされているかどうかを判断するには、ライブラリーのエントリーポイントを確認します。例えば、次のコマンドを実行してエントリーポイントのリストを取得できます。

Linux*:

% nm libchkpwrap.a | egrep 'T __chkp_'

Windows* (x86):

dumpbin /symbols libchkpwrap.lib | egrep 'SECT.*External.*
[_]*__chkp_'

返されるエントリーポイントのリストからラッパーが分かります。例えば、__chkp_strcpystrcpy のラッパーです。


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