インテル® Parallel Studio XE 2013 のポインターチェッカー機能: スタティック解析、インテル® Inspector XE、Mudflap との相違点

同カテゴリーの次の記事

インテル® MIC アーキテクチャー向けの高度な最適化 - ピーク転送レートを達成する方法

この記事は、インテル® ソフトウェア・サイトに掲載されている「Pointer Checker feature in Intel® Parallel Studio XE 2013: How is it different from Static Analysis, Intel® Inspector XE, Mudflap etc?」の日本語参考訳です。


ポインターチェッカーは、インテル® Parallel Studio XE 2013 の重要な “新機能” です。以下の表は、スタティック解析、Mudflap、インテル® Inspector XE との主な相違点をまとめたものです。

機能 相違点
インテル® Parallel Studio XE 2013 のポインターチェッカー
  • 解析タイプ: ダイナミック・ランタイム解析および保護。
  • バッファー・オーバーフローとオーバーランを検出 – 配列とダングリング・ポインター (スタック & ヒープ) を含む、ポインターを使用するすべてのメモリーアクセスの境界チェックを行います。
  • コンパイラー・オプションで有効になり、リンクフェーズで自動的にリンクされるランタイム・ライブラリーに実装されます。構造体のレイアウトや ABI に変更はありません。
  • 対応するラッパー RTL 関数ライブラリーを使用して、すべての標準 RTL 関数のチェックを行います。
  • 境界操作用の “組込み関数” を提供します。これは、ランタイム・ライブラリー関数 (RTL) のラッパーを記述する際に役立ちます。
      例: カスタム・メモリー・アロケーター
  • 境界違反をデバッグするためのブレークポイントを含む、範囲外エラーの発見とレポートを制御するユーザー API を提供します。
  • ポインターチェッカーは、1 つまたは複数のファイル、あるいはアプリケーション全体で有効にできます。また、ポインターチェッカーが有効なコードとそうでないコードは共存できます。
  • リアルタイム・チェックのため、誤検出は少なめです。
インテル® Parallel Studio XE 2013 のスタティック解析
  • 解析タイプ: ソースコードのスタティック解析。
  • ポインターチェッカーと比べると、ビルド処理が複雑です。
  • バッファー・オーバーフロー、ポインターの誤った使用、メモリーリーク、その他のプログラムエラーを検出します。注: スタティック解析のため、ポインターが指す内容はランタイムと異なることがあります。
  • ダイナミック解析と違い、指定されたワークロードで使用される実行パスだけでなく、可能なすべての実行パスを検証します。
  • 結果の表示、ナビゲーション、問題の修正には、インテル® Inspector XE 2013 が必要です。
  • 誤検出が多くなる可能性があります。また、多くの場合、結果は決定的ではありません。
インテル® Inspector XE 2013
  • 解析タイプ: ダイナミック・ランタイム解析
  • ダイナミック・ランタイム・バイナリー・インストルメンテーションを使用します。
  • 問題の表示とナビゲーション用の GUI インターフェイスを提供します。
  • バッファー・オーバーフロー、メモリーリーク、ダングリング・ポインターを検出します。
  • ポインター境界操作用の “組込み関数” は提供しません。
  • ポインターの範囲外エラーの発見とレポートを詳細に調整するユーザー API は提供しません。
  • リアルタイム・チェックのため、誤検出は少なめです。
  • ソースコードに移動して、原因を特定できます。
Mudflap
  • 解析タイプ: ダイナミック・ランタイム解析および保護。
  • バッファー・オーバーフロー、オーバーラン、ダングリング・ポインターを検出します。
  • コンパイラー・オプションで有効になり、ランタイム・ライブラリーで実装されます。ランタイム・ライブラリーは、リンクフェーズで自動的にリンクされないため、ユーザーが指定する必要があります。
  • アプリケーションによっては、ライブラリーと Mudflap インストルメンテーションで互換性問題が発生することがあります。
  • ダイナミック共有オブジェクト (DSO) には対応していません。
  • ポインター境界操作用の “組込み関数” は提供しません。
  • 違反メッセージは慣れるまで解読が困難です。
  • リアルタイム・チェックのため、誤検出は少なめです。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事

  • 2015 年春のインテル® ソフトウェア技術ウェビナーシリーズ2015 年春のインテル® ソフトウェア技術ウェビナーシリーズ 無料のインテル® ソフトウェア技術ウェビナーシリーズ 2015 年春のインテル® ソフトウェア技術ウェビナーが開催されました — 皆さんがご覧になって、開発に役立てられることを期待しています。 このウェビナーシリーズの概要紹介をご覧ください。(英語) > 2015 […]
  • インテル® Advisor コマンドラインと MPIインテル® Advisor コマンドラインと MPI この記事は、インテル® デベロッパー・ゾーンに公開されている「Command Line and MPI」の日本語参考訳です。 インテル® Advisor 2016 には、Fortran、C および C++ (ネイティブ/マネージド) […]
  • インテル® Inspector XE を使用して Windows* 向けアプリケーションのメモリーエラーを検出インテル® Inspector XE を使用して Windows* 向けアプリケーションのメモリーエラーを検出 この記事は、インテル® デベロッパー・ゾーンに公開されている「Find Windows* Memory Errors with Intel® Inspector XE」の日本語参考訳です。 インテル® Inspector XE は、Windows* […]
  • ガイド付き自動並列化ガイド付き自動並列化 この記事は、インテル® デベロッパー・ゾーンに掲載されている「Guided Autoparallelism」の日本語参考訳です。 インテル® Composer XE Linux* 版には、ガイド付き自動並列化 (GAP) 機能が含まれており、Fortran と C/C++ […]
  • インテル® Advisor XE 2016 Update 2 新機能インテル® Advisor XE 2016 Update 2 新機能 この記事は、インテル® デベロッパー・ゾーンに公開されている「Intel® Advisor XE 2016 Update 2 What's new」の日本語参考訳です。 ベクトル化アシスタント・ツールの新バージョン、インテル® Advisor XE 2016 Update 2 […]