Oracle® Developer Studio 12.5: コードアナライザチュートリアル

印刷ビューの終了

更新: 2016 年 6 月
 
 

コードアナライザツールで検出される潜在的なエラー

コンパイラ、discover、および uncover は、コード内の静的コードの問題、動的メモリーアクセスの問題、およびカバレージの問題を検出します。このセクションでは、これらのツールで検出され、コードアナライザで分析されるエラーの種類について説明します。

これらのエラーと警告の詳細は、Oracle Developer Studio 12.5: コードアナライザユーザーズガイド の 付録 A, コードアナライザで分析されるエラー,を参照してください。

静的コードの問題

静的コード検査では、次の種類のエラーが検出されます。

  • ABR: 配列境界を越える読み取り (beyond array bounds read)

  • ABW: 配列境界を越える書き込み (beyond array bounds write)

  • DFM: メモリーの二重解放 (double freeing memory)

  • ECV: 明示的型キャスト違反 (explicit type cast violation)

  • FMR: 解放済みメモリーの読み取り (freed memory read)

  • FMW: 解放済みメモリーの書き込み (freed memory write)

  • INF: 空の無限ループ (infinite empty loop)

  • MLK: メモリーリーク (memory leak)

  • MFR: 関数の復帰なし (missing function return)

  • MRC: malloc 戻り値の検査なし (missing malloc return value check)

  • NFR: 初期化されていない関数の復帰 (uninitialized function return)

  • NUL: NULL ポインタ間接参照、リークの可能性があるポインタの検査

  • RFM: 解放済みメモリーを返す (return freed memory)

  • UMR: 初期化されていないメモリーの読み取り、初期化されていないメモリーの読み取りビット操作 (uninitialized memory read, uninitialized memory read bit operation)

  • URV: 使用されていない戻り値 (unused return value)

  • VES: スコープ外での局所変数の使用 (out-of-scope local variable usage)

動的メモリーアクセスの問題

動的メモリーアクセス検査では、次の種類のエラーが検出されます。

  • ABR: 配列境界を越える読み取り (beyond array bounds read)

  • ABW: 配列境界を越える書き込み (beyond array bounds write)

  • BFM: 不正な空きメモリー (bad free memory)

  • BRP: 不正な realloc アドレスパラメータ (bad realloc address parameter)

  • CGB: 破損したガードブロック (corrupted guard block)

  • DFM: メモリーの二重解放 (double freeing memory)

  • FMR: 解放済みメモリーの読み取り (freed memory read)

  • FMW: 解放済みメモリーの書き込み (freed memory write)

  • FRP: 解放済み Realloc パラメータ (freed realloc parameter)

  • IMR: 無効なメモリーの読み取り (invalid memory read)

  • IMW: 無効なメモリーの書き込み (invalid memory write)

  • MLK: メモリーリーク (memory leak)

  • OLP: 送り側と受け側の重複 (overlapping source and destination)

  • PIR: 部分的に初期化された読み取り (partially initialized read)

  • SBR: スタック境界を越える読み取り (beyond stack bounds read)

  • SBW: スタック境界を越える書き込み (beyond stack bounds write)

  • UAR: 割り当てられていないメモリーの読み取り (unallocated memory read)

  • UAW: 割り当てられていないメモリーの書き込み (unallocated memory write)

  • UMR: 初期化されていないメモリーの読み取り (uninitialized memory read)

動的メモリーアクセス検査では、次の種類の警告が検出されます。

  • AZS: 0 サイズの割り当て (allocating zero size)

  • MLK: メモリーリーク (memory leak)

  • SMR: 投機的な非初期化メモリーからの読み取り (speculative uninitialized memory read)

コードカバレージの問題

コードカバレージ検査では、カバーされていない関数が特定されます。結果では、見つかったコードカバレージの問題に「カバーされていない関数」というラベルが付けられ、潜在的なカバレージの割合が示されます。この割合は、該当する関数をカバーするテストを追加した場合にアプリケーションの合計カバレージが何パーセント増加するかを示しています。