エラー検出テクノロジー
Insure++のSource Code Instrumentation(SCI)テクノロジーとランタイム ポイント トラッキング テクノロジーは、Parasoft社が開発したメモリチェックとエラーチェックを徹底的に行なうためのテクノロジーです。Insure++は、これらのテクノロジーを使用し、メモリリークやメモリ破壊、ダングリング ポインタ、メモリオーバーフローなど検出困難なエラーを自動検出します。
Source Code Instrumentation(SCI)テクノロジー
- 徹底的なメモリチェック
Source Code Instrumentation(SCI)テクノロジーは、オリジナルのソース コードをパース、解析し、データ構造、メモリ使用、ポインタ使用、およびインタフェースなどのプログラムの各要素のリポジトリデータベースを作成します。同時に、オリジナルと機能面では同じ"同等"のソース コードを新しく生成し、テスト用関数と解析用関数を挿入し、コンパイルします。生成された実行モジュールの実行時に、Insure++が各データ値とメモリ参照をデータベースと照らし合わせ、その一貫性と整合性を検証します。
- ミュータントテスト
SCIテクノロジーは、ミュータント テストも実行します。ミュータントテストは、オリジナルのソースコードの動作とテスト用に生成したソースコードの動作を比較検証するテストです。ミュータント テストによって、不正なコピー コンストラクタやコードの初期化順序の誤りなど、エラーにつながる曖昧性などが発見でき、C++ では特に重要なテストです。
Insure++は、オリジナルのソースコードのコピーではなく、オリジナルのソースコードをパースし、解析し、機能的には同じコードを新しく生成し、テストを実行するので、エラーチェックと同時にミュータントテストを行ないます。Insure++は、テスト実行時にオリジナルのソースコードの動作とテスト用に生成されたソースコードの動作が異なる場合、エラーとしてレポートします。
ランタイム ポイント トラッキング テクノロジー
ランタイム ポイント トラッキング テクノロジーは、メモリへのすべての読み取り/書き込みアクセスを監視し、追跡するテクノロジーです。このテクノロジー により、Insure++はメモリリークに関して詳細で正確な情報をレポートします。 Insure++は、malloc、new、delete、free などのメモリ管理コマンドが実行されると、メモリ使用データベースを更新します。これにより、Insure++ はすべてのメモリ セグメントについてメモリ アクセスを正確に把握できるので、各メモリ ブロックへの最後のポインタ上書きコマンドを検出できます。そのため、実行終了時に検出したメモリリークが「いつ」、「ソースコードのどこで発生し」、「どこでアロケートされたのか」を正確にレポートします。Insure++が検出するエラー
- プログラミングエラーとサードパーティ ライブラリインターフェイスエラー
データ表記と変数宣言の問題、I/O ステートメント、引数の不一致、システム コール内の不正なパラメータ、システム コール内での予期せぬエラー など
- C++ 固有のエラー
delete 演算子の一貫しない使用の問題、メモリ割り当ての競合の問題など
エラー一覧
*1 Source Code Instrumentationテクノロジーは、米国特許番号 5,581,696 によって保護されています。
*2 ランライムポインタ トラッキングテクノロジーは、米国特許番号 5,842,019によって保護されています。
*2 ランライムポインタ トラッキングテクノロジーは、米国特許番号 5,842,019によって保護されています。
Insure++に
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- parasoft-info@techmatrix.co.jp