Loading article…
Insure++は、ソフトウェア開発者がCおよびC++で書かれたプログラムのさまざまなエラーを検出するために使用するメモリ デバッガコンピュータ プログラムです。Parasoft によって作成され、 Purify、Valgrind、Dr Memoryなどの他のメモリ デバッガと機能的に似ています。[ 1 ]
Insure++ は、解放済みメモリへの誤ったアクセス (解放後使用)、配列境界違反、未割り当てメモリの解放 (プログラマが同じメモリを 2 回解放した場合や、グローバルメモリまたはスタックメモリを解放した場合によく発生します)、その他多くの問題を自動的に検出できます。[ 2 ]
PurifyやValgrindとは異なり、Insure++はソースコードレベルで計測機能を挿入するため、 [ 3 ] [ 4 ]他のツールでは見逃されるエラーを検出できます。[ 5 ]特に、Insure++は自動配列のバッファオーバーフローや、次の例のように、ポインタが誤って有効なメモリ領域から別の有効なメモリ領域に「ジャンプ」するオーバーフローを検出できます。
#include <stdlib.h> int main () { char * p = malloc ( 1024 ); /* 最初の動的割り当てブロック */ char * q = malloc ( 1024 ); /* 2 番目のブロック */ p += 1200 ; /* この時点では、"p" はおそらく 2 番目のブロックを指しているでしょう。 しかし、実際の動作に関する誤った仮定は、間違いにつながります。 */ * p = 'a' ; /* 無効な書き込み (最初のブロックの末尾を超えている) */ }ソースレベルの計測により、メモリリークが発生したことだけでなく、どこで発生したかも特定できます。[ 1 ]一部のツールはメモリが割り当てられた場所の情報のみを提供しますが、Insure++ は実際のリークが発生した日時と場所を示すスタック トレースも提供します。
さらに、Insure++はテスト対象のすべてのコードについて、線形コードシーケンスとジャンプコードカバレッジの指標を生成します。