インテル® Inspector 2024

C/C++、Fortran アプリケーション開発者向けのメモリー / スレッド化エラー検出ツールです。
インテル® oneAPI ベース & HPC ツールキット (シングルノードおよびマルチノード) に同梱されます。

詳細はこちら 評価版はこちら
関連情報
[お知らせ一覧]

より少ないコストで信頼性の高いアプリケーションを開発

統一されたクロスアーキテクチャー・プログラミング・モデル oneAPI

インテル® Inspector は、 Windows* および Linux* OS 上で使用でき、C、C++ および Fortran アプリケーションのメモリーエラーとスレッド化エラーを容易に検出します。

特殊なコンパイラーやビルドの必要はありません。通常のデバッグもしくはリリースビルドのバイナリーを使用できます。グラフィック・ユーザー・インターフェイスもしくは、コマンドラインによる自動回帰テストが可能です。GUI は、Windows* と Linux* OS 上のスタンドアロンで利用でき、Windows* では Microsoft* Visual Studio* に統合できます。生産性を上げ、コストを抑えつつ早期に製品を市場へ投入できます。

メモリーエラー

  • メモリーリーク
  • メモリー破壊
  • 割り当てと解放の API ミスマッチ
  • 一貫性のないメモリー API の利用
  • 不正なメモリーアクセス
  • 初期化されていないメモリーの読み込み

スレッド化エラー

  • データ競合
  • ヒープ競合
  • スタック競合
  • デッドロック

スイート製品に同梱

インテル® Inspector は単体販売しておりません。以下製品に同梱されます。

インテル® oneAPI ベース & HPC ツールキット

C/C++、Fortran コンパイラーと MPI 開発ツールにより、CPU およびアクセラレーターまたはそれらのクラスターへ最適化された HPC アプリケーションの開発を支援します。

バージョン 2024 の機能

主に以下の変更・機能が追加されました。
詳細は、 リリースノートおよび インテル社公開の情報を参照ください。

  • バージョン 2024 では、最新の機能およびセキュリティーに関するアップデートが適用されました。

コストを節約し、信頼性の高いアプリケーションを提供

インテル® Inspectorは、Windows および Linux 上で動作する C、C++ および Fortran アプリケーション用の使いやすいメモリー / スレッド化エラーのデバッガーです。早期にエラーを見つけ、修正コストを節約します。

特別なコンパイラーやビルドは必要ありません。通常のデバッグまたはプロダクション・ビルドを使用するだけです。

グラフィカル・ユーザー・インターフェイスで使用でき、またコマンドラインで回帰テストを自動化することも可能です。 ユーザーインターフェイスは、Windows と Linux の両方でスタンドアロンで使用することも、Microsoft Visual Studio と統合することもできます。

生産性を高め、コストを削減し、市場投入までの期間を短縮します。

インテル® Inspector は、インテル® Parallel Studio XE およびインテル® System Studio ツールの一部として提供されています。製品には、サポートサービスが含まれます。

開発期間を短縮 – 再現性が低く非決定論的エラーを検出してデバッグ

動的解析では、複雑すぎて静的解析では検出できない微妙な欠陥や脆弱性を明らかにします。静的解析とは異なり、デバッガーの統合により問題を診断して根本的な原因を見つけることができます。インテル® Inspector は、実行時にエラーが発生しなかった場合でも、再現性のないエラーや非決定的なエラーを検出できます。

図のような競合状態は、非決定論的であるためツールなしでの診断は非常に困難です。毎回発生するとは限りません。 インテル® Inspector は、競合とデッドロックを検出し、エラーが発生する前にデバッガーでブレークします。

簡単に解析可能 – 特殊なコンパイラーやビルドは必要はありません!
通常のデバッグもしくは最適化ビルドを使用

他のメモリーやスレッド解析ツールとは異なり、インテル® Inspector は分析のための特殊なビルドや再コンパイルを必要としません。通常のデバッグもしくはリリースビルドを利用します (解析結果をソースコードにマップするためシンボルが必要です)。開発者のワークフローを速く、そして簡単にするだけでなく、信頼性と正確性を向上させます。

これは、インテル® Inspector の動的なバイナリーのインストルメントにより可能となります。ほかの静的コンパイルベースのインストルメント技術は、動的に生成されたもしくはリンクされたコードでは困難です。インテル® Inspector は、ソースコードのないサードパーティーから提供されるライブラリーを含むすべてのコードを検査できます。

メモリー / スレッド化エラーを検出

メモリーリーク、メモリー破壊および不正アクセスなどのエラーは、ツールなしでは特定が困難です。競合やデッドロックなどのスレッドエラーは、非決定論的で再現性が低いためさらに検出が困難です。インテル® Inspector はエラーを検出して、決定論性のあるデバッグを可能にします。スレッドとメモリーエラーの詳細は、以下をチェックしてください。

動的インストルメント: 簡単で、信頼性が高く、正確

他のメモリーやスレッド解析ツールとは異なり、インテル® Inspector は分析のため特殊なビルドおよび再コンパイルを必要としません。通常のデバッグもしくはリリースビルドを利用します (解析結果をソースコードにマップするためシンボルが必要です)。開発者のワークフローを速く、そして簡単にするだけでなく、信頼性と正確性を向上させます。他の静的コンパイルベースのインストルメント技術は、動的に生成されたもしくはリンクされたコードと競合します。インテル® Inspector は、ソースコードのないサードパーティーから提供されるライブラリーを含むすべてのコードを検査できます。

C、C++ および Fortran アプリケーションのチェックとデバッグ

Fortran のレガシーコードを使用していますか? ソースコードのないライブラリーを使用していますか? 問題ありません。すべて動作します。動的インストルメントでは、ソースコードのないサードパーティーから提供されるライブラリーを含むすべてのコードの検査が可能です。

検査レベルを選択 – 高速に行うか、詳細を調査するか

最初のレベルの解析は、非常に低オーバーヘッドです。高速であるため、開発中に使用します。第 2 レベルは、時間がかかりますがより詳しい情報を取得できます。新しい機能を実装した際のチェックに向いています。第 3 レベルは、回帰テストとバグの検出に最適です。

デバッガー・ブレークポイントで簡単に診断

実行結果の情報を元に、再度実行した際にエラーが発生する直前でブレークポイントを設定します。エラーの直前でデバッガーを起動して解析が行えるため、問題が発生する前の状態を把握することができます。変数を調べて、問題を診断するため他のスレッドを見てください。Visual Studio*、GDB そして IDB デバッガーがサポートされます。プロジェクトの "Configure Analysis Type" で、"Enable debugger when problem detected" をチェックしてください。

メモリー使用量の増加を段階的に診断

スレッド実行中のメモリー使用量の増加をグラフィカルに表示。開発者はメモリー増加の原因を知ることができ、解決するのに役立つコールスタックとコードスニペット情報が提供されます。

ヒープの伸長、増分リークレポートの解析

アプリケーションを実行し続けると増加するメモリー利用が、何を引き起こしているか知るのは複雑です。ヒープ伸長解析は、この原因特定に役立ちます。特定の基準から解放されず、増え続けるヒープ割り当てのレポートを取得します。同様に、特定の基準から増加するリークレポートを取得できます。

ポーズ/レジュームは解析をスピードアップします

解析する範囲を限定することで解析をスピードアップします。問題の疑いがある実行でのみ解析を有効にします。インストルメントのオーバーヘッドは、コードセクション中の無関係な実行から引き起こされます。これは、エラーに到達するまで長い時間がかかる状況では、非常に強力な機能ですが、利用には十分注意してください。

誤認識されたエラーを抑制し、共有しましょう

問題とならない、もしくは誤認識されたエラーを検出した際は、抑制リストに加えることで、次回から調査の必要が無くなります。複数のリストがサポートされ、他のプロジェクトの開発者と共有できます。コード中の該当しないエラーの抑制を避けるため、プライベートな抑制リストを作成します。モジュール全体を抑制することで、収集時間を短縮できます。

チームでの協調

各エラーレポートには、ステート情報 (新規、確認済み、解決済み、未解決、回帰、問題なし、繰り越し) が含まれ、種別に分類し優先順位をつけるのに役立ちます。

フィルターでエラーリストを管理

特定ソースのエラーのみをチェックしますか? エラーリストをクリックするだけで、特定のエラーのみを表示できます。新しく見つかったエラーから、重要度の高いエラーのみを表示しますか? クリックするだけで表示できます。フィルター処理は、多くのカテゴリー向けに用意されています。重要度、問題のタイプ、ステート、モジュールなど、必要のない情報をフィルターで除き、重要なものだけに注目できます。

インテル® Xeon Phi™ コプロセッサー製品向けのソフトウェアの検査

インテル® Inspector は、インテル® Xeon Phi™ コプロセッサーで実行中のアプリケーションを直接解析することはできませんが、インテル® Xeon Phi™ コプロセッサー向けのソフトウェアを解析できます。ホスト上のマルチコア・プロセッサー上でアプリケーションを実行して、インテル® Inspector で解析することで、インテル® Xeon Phi™ コプロセッサーで実行した時のメモリーエラーやスレッド化エラーを検知できます。

解析範囲の制限

誤認識されたエラーを排除し、API を使用して分析対象としないメモリーを通知することで、解析をスピードアップします (例えば、同期データ構造体など)。

少ない偽陽性、優れたエラーメッセージ

インテル® Inspector は、インテル® TBB、インテル® Cilk™ Plus そして OpenMP* の並列プログラミング・モデルのセマンティクスを解釈できます。これにより、作業時間を短縮できます。

  • ほかのツールよりも正確に偽陽性をレポートできます。
  • エラーに関しては、難解な内部ラベルなどではなく、ソースコードに基づいて解りやすく説明されます。

複数 OS (Windows* および Linux*): 同じユーザー・インターフェイス

Windows* と Linux* の両方で開発していますか? 双方の OS 環境で同じ解析ツールを簡単に利用したくはないですか? インテル® Inspector は、Windows* と Linux* の両方で同じユーザー・インターフェイスを提供します。Windows* 環境では、スタンドアロンか Microsoft* Visual Studio* 統合環境で利用できます。

MPI アプリケーションのメモリーとスレッド化エラーを解析

インテル® Inspector は、MPI アプリケーションのメモリーとスレッド化のエラーを検知できます。単一の共有メモリーシステムで初期解析を行うと、多くのエラーを特定でき、追加の解析をクラスター上で実行できます。解析結果は、ランクごとにソートされます。

ポインターチェッカー – 診断が困難な領域外アクセスを検知

Windows* ポインターチェッカー

Linux* ポインターチェッカー

ポインターチェッカーは、割り当てられた領域を超えるメモリーアクセスを検知するコンパイラー・ベースの診断です。ダングリング・ポインターやバッファー・オーバーフローなどを見つけます。例外が発生した場合、デバッガーへ移行してブレークすることで診断をスピードアップします。ポインターチェッカーを有効にして (/Qchecked-pointers – Windows*、-checked-pointers – Linux*) コンパイルし、コードを実行すると境界外メモリーアクセスが特定されレポートが生成されます。ポインターチェッカーには、インテル® コンパイラーが必要です。

本ページに、ドキュメント一覧が表示されない場合は、ご利用のブラウザの JavaScript を ON にしていただくか、 こちらのドキュメント・ページをご覧ください。

製品セミナーや関連イベントをご紹介。

米インテル社の製品情報を日本語に翻訳して公開中。

共通のハードウェア要件

CPU プロセッサー

次のインテル® 64 アーキテクチャーに基づくシステムは、ホスト・プラットフォームとターゲット・プラットフォームの両方としてサポートされています。

  • インテル® Core™ プロセッサー・ファミリーまたはそれ以降
  • インテル® Xeon® プロセッサー・ファミリー
  • インテル® Xeon® スケーラブル・ プロセッサー・ファミリー
アクセラレーター
  • インテル® データセンター GPU マックス・シリーズ (開発コード名 Ponte Vecchio)
  • インテル® データセンター GPU フレックス・シリーズ (開発コード名 Arctic Sound)
  • インテル® Arc™ グラフィックス
  • インテル® Iris® Xe グラフィックス
  • FPGA カード: インテル® oneAPI DPC++/C++ コンパイラーのシステム要件を参照してください。
ディスク空き容量
  • 3GB (最小) - コンパイラーとライブラリー (インテル® oneAPI DPC++/C++ コンパイラー、インテル® DPC++ 互換性ツール、インテル® oneAPI DPC++ ライブラリー、およびインテル® oneAPI スレッディング・ビルディング・ブロック) のみをインストールする場合
  • 24GB (最大) - インテル® ベース・ツールキットに含まれるすべてのコンポーネントをインストールする場合
RAM

共通のソフトウェア要件


オペレーティング・システム

インテル® 64 アーキテクチャーでサポートされているオペレーティング・システムは以下の通りです。個々のツールは、その他のオペレーティング・システムやアーキテクチャーをサポートしている場合があります。詳細は、各ツールのリリースノートを参照してください。

GPU や FPGA などのアクセラレーターへオフロードするアプリケーションを開発する場合、サポートされるオペレーティング・システム用に特定のバージョンの GPU ドライバーが必要です。最新の情報は、「インテル® ソフトウェア開発ツール・インストール・ガイド」 (英語) の「インテル® GPU ドライバーのインストール」セクションを参照してください。

インテル® ソフトウェア開発ツール 2023.0 では、以下のドライバーバージョンで Windows* および Linux* での動作テストが行われました。

Windows* 向けインテル® グラフィックス・ドライバー

ご利用中のデバイスに適したリンクの手順に沿って、ドライバーをインストールしてください。

Linux* オペレーティング・システム向けの汎用 GPU ドライバー

インテルの GPU につきましては、こちらの記事からご利用中のデバイスに適した手順をご確認ください。


注: これらの OS ディストリビューションはインテルによってテストされたもの、または動作が確認されているものです。その他のディストリビューションは、動作する場合としない場合があり、推奨されません。質問がある場合は、インテル・コミュニティー・フォーラムでサポートを受けることができます。商用サポートを利用可能な場合は、サポートチケットを作成いただくか、エクセルソフト株式会社までお問い合わせください。


Linux*

ローカル・インストールとツールキットを使用するための環境設定に GNU* Bash が必要です。

CPU ホスト/ターゲットサポート

CPU ホスト/ターゲットの Linux* ディストリビューション サポートされるコンポーネント
Red Hat* Enterprise Linux* 8、9 すべてのコンポーネント
Rocky Linux* 9 すべてのコンポーネント
SUSE* Linux Enterprise Server 15 SP3、SP4 すべてのコンポーネント
Ubuntu* 20.04, 22.04 すべてのコンポーネント
Debian* 11 すべてのコンポーネント
Amazon Linux* 2022 すべてのコンポーネント
WSL 2 インテル® oneAPI コレクティブ・コミュニケーション・ライブラリー (インテル® oneCCL) を除くすべてのコンポーネント

GPU アクセラレーター・サポート (GPU)

GPU アクセラレーターの Linux* ディストリビューション サポートされるコンポーネント 追加のソフトウェア要件
Red Hat* Enterprise Linux* 8.6 インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB) を除くすべてのコンポーネント カーネル 4.11 またはそれ以降
Ubuntu* 22.04 インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB) を除くすべてのコンポーネント カーネル 4.11 またはそれ以降
SUSE* Linux Enterprize Server* 15 SP4 インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB) を除くすべてのコンポーネント カーネル 4.11 またはそれ以降
ドライバーのインストール手順 (英語) に従ってください。

Windows*

CPU サポート

OS (CPU) サポートされるコンポーネント
Windows* Pro および Enterprise 10、11 インテル® oneAPI コレクティブ・コミュニケーション・ライブラリー (インテル® oneCCL) を除くすべてのコンポーネント
Windows Server* 2019、2022 インテル® oneAPI コレクティブ・コミュニケーション・ライブラリー (インテル® oneCCL) を除くすべてのコンポーネント

GPU アクセラレーター・サポート (iGPU)

OS (GPU) サポートされるコンポーネント
Windows* 10、11 インテル® oneAPI コレクティブ・コミュニケーション・ライブラリー (インテル® oneCCL)、インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB) を除くすべてのコンポーネント
Windows Server* 2019、2022 インテル® oneAPI コレクティブ・コミュニケーション・ライブラリー (インテル® oneCCL)、インテル® oneAPI スレッディング・ビルディング・ブロック (インテル® oneTBB) を除くすべてのコンポーネント

統合プロセッサー・グラフィックスは、第 11 世代インテル® Core プロセッサーまたはそれ以降でご利用いただけます。



開発ツール


診断ユーティリティー

診断ユーティリティーは、インテル製品を使用するためシステムの状態を診断するように設計されています。このユーティリティーを使用することで、以下のようなエラーを見つけることができます。

  • 現在のユーザーに対する権限の問題
  • ドライバーの不足や互換性のないドライバー
  • 互換性のないバージョンのオペレーティング・システム

詳細は、「診断ユーティリティー・ユーザーガイド」 (英語) を参照してください。


Visual Studio* Code (VS Code) 拡張

VS Code 拡張は、oneAPI アプリケーションを作成、デバッグ、およびプロファイルする開発者を支援します。詳細は、「Visual Studio* Code とインテル® ソフトウェア開発ツールの使用ユーザーガイド」 (英語) を参照してください。

VS Code Marketplace (英語) から以下の VS Code 拡張を利用できます。

  • インテル® ソフトウェア開発ツール向けサンプルブラウザー
  • インテル® ソフトウェア開発ツール向け環境コンフィグレーター
  • インテル® ソフトウェア開発ツール向け解析コンフィグレーター
  • インテル® ソフトウェア開発ツール向け GDB GPU サポート
  • インテル® ソフトウェア開発ツール向けインテル® DevCloud コネクター

関連情報:


Eclipse*

Micsosoft* Visual Studio*

Microsoft* Windows Subsystem for Linux 2 (WSL 2)

お知らせ

2022年12月19日、インテル® Inspector 2023 が同梱されるインテル® oneAPI 2023 の販売を開始しました。

過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2023 を無料でダウンロードしてご利用いただけます。

2021年 12月 23日、インテル® Inspector 2022 が同梱されるインテル® oneAPI 2022 の販売を開始しました。

過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2022 を無料でダウンロードしてご利用いただけます。

2020年 12月 9日、インテル® Inspector 2021 が同梱されるインテル® oneAPI 2021 の販売を開始しました。

過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2021 を無料でダウンロードしてご利用いただけます。

2019年 12月 18日、インテル® Inspector 2020 が同梱されるインテル® Parallel Studio XE 2020 の販売を開始しました。

過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2020 を無料でダウンロードしてご利用いただけます。

2018年 9月 13日、インテル® Inspector 2019 が同梱されるインテル® Parallel Studio XE 2019 の販売を開始しました。

過去に製品をご購入いただき、現在有効なサポートサービスをお持ちのお客様は、すぐにバージョン 2019 を無料でダウンロードしてご利用いただけます。

インテル社の方針により、2017年 9月 12日を以って、インテル® Inspector 単体製品のサポートサービス更新用製品「SSR (期限内更新用)」および「SSR (期限切れ更新用)」の販売を終了させていただきました。

2017年 9月 13日から 2018年 3月 30日までの期間限定で、サポートサービスが有効なインテル® Inspector 製品をお持ちのお客様限定で、インテル® Inspector をコンポーネントとして含むインテル® Parallel Studio XE Professional Edition 製品へ、大特価にてアップグレードいただけるお得な特別アップグレード製品を販売させていただいております。アップグレードの詳細は、 こちらのページをご覧ください。

インテル社の方針により、2014年 8月 26日 (火) を以って、インテル® Inspector 単体製品の新規ライセンスの販売を終息しました。

FAQ

いいえ。インテル® Inspector のメモリー / スレッド・チェック・ツールは、プログラムバイナリーを動的にインストルメントして解析します。プログラムを再コンパイルしたり、リビルドする必要はありません。エラーレポートがソースコードの場所に関連付けられるように、デバッグ情報を含むデバッグバイナリーまたはリリースバイナリーを使用することを推奨します。

通常、最高レベルの解析で実行するとアプリケーションのコードパスに存在するメモリーエラーやスレッド化エラーはすべて検出されますが、インテル® Inspector がプログラムのメモリー / スレッド化エラーをすべて検出できるという保証はありません。

インテル® Inspector のインタラクティブ・デバッグ機能を利用すると、標準デバッガーを使用して、インテル® Inspector で検出されたメモリー問題やスレッド問題を調査することができます。Microsoft® Visual Studio® デバッガー (Windows®) およびインテル® デバッガーと GNU* デバッガー (Linux*) をサポートします。

潜在的なエラーの範囲によります。スレッドチェック解析は動的で、実行されたコードのエラーのみ検出します。実行されないコードのエラーは検出しません。実行されたコードでは、スレッドチェックは、データ競合、クロススレッド・スタック・アクセス、潜在的なデッドロックのような潜在的なエラーを検出することができます。プログラムが正しい出力を生成している場合でもスレッドチェックがエラーを報告することがあるのはこのためです。

はい。メモリーチェックとスレッドチェックはどちらも、ターゲットの並列プログラムで使用されている利用可能なコアまたはハードウェア・スレッドで解析を実行します。一般に、解析のオーバーヘッドは適切にスケールし、ターゲット・アプリケーションのスケーリング係数に似ています。

インテル® Inspector は、シングルコア・マシン上でもスレッドエラーを検出することができます。プログラムで複数のスレッドを使用していれば、マルチコアマシンでスレッドチェックを実行する必要はありません。プログラムが Windows® または POSIX* スレッド API を明示的に使用してスレッドを作成している場合、単一プロセッサー/シングルコア・マシン上で複数のスレッドを作成しても問題ありません。プログラムがインテル® TBB、OpenMP* プラグマ、インテル® Cilk™ Plus、その他のマシンの利用可能なコア数に基づいてスレッドを作成するタスク/スレッド化モデルを使用している場合、スレッド化モデルを使用して複数のスレッドを作成する必要があります。 もちろん、マルチコアマシンで実行するほうが、パフォーマンスは高くなります。

はい。スレッドチェックおよびメモリーチェックの GUI またはコマンドラインで、除外するモジュールを指定できます。 しかし、メモリーチェックでは推奨しません。サードパーティーのライブラリーを除外した場合、初期化されていないメモリーや不正なポインターがサードパーティーのライブラリーに渡されても、それらの使用が検出されません。このようなケースでは、問題はサードパーティーのライブラリーにはありません。

プラグインモジュールを解析するには、プラグインモジュールをロードして実行するアプリケーションをインテル® Inspector で実行する必要があります。モジュールの追加または除外オプションを使用して、インテル® Inspector がプラグインモジュールのみを解析するように指定できます。

追加のアノテーションがないと、カスタムメモリー管理 API やカスタム同期プリミティブを含むアプリケーションを解析したときに、インテル® Inspector が誤検出をレポートすることがあります。 インテル® Inspector は、ソースコードにアノテーションを付けることで、解析に同期およびメモリー管理 API を通知する、API のセットを提供します。

いいえ。メモリーチェックはプログラムの解析中に発生したエラーのみ検出します。

インテル® レジストレーション・センターで操作します。
操作手順やよくあるご質問、トラブルシューティングは、インテル® レジストレーション・センター操作マニュアルを参照ください。

» マニュアルはこちら

最新版、または旧バージョンのダウンロードは、インテル® レジストレーション・センターで行います。
詳細は以下ページを参照ください。

» 製品登録 & ダウンロード