問題タブ [intel-inspector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Intel Inspector がスピンロックの実装でデータ競合を報告する
Windows のインターロック機能を使用して非常に単純なスピンロックを作成し、デュアルコア CPU (変数をインクリメントする 2 つのスレッド) でテストしました。
プログラムは正常に動作しているように見えます (毎回同じ結果が得られますが、同期が使用されていない場合はそうではありません) が、インテル® Parallel Inspectorは値 += jで競合状態があることを示しています (以下のコードを参照)。SpinLock の代わりにクリティカル セクションを使用すると、警告が表示されなくなります。
SpinLock の実装は正しいですか? 使用されるすべての操作はアトミックであり、適切なメモリ バリアがあり、競合状態につながるべきではないため、これは非常に奇妙です。
テストプログラム:
c++ - Intel Inspector XE 2012 警告 #12367 - vector::erase() に渡された反復子パラメーターのスライス
警告#12367 when running Build | Build Solution for Intel Static Analysis
が表示されますが、コードの問題がわかりません。アイデアはありますか?
警告 #12367: 呼び出し "std::_Vector_iterator > > std::vector >::erase(std::_Vector_const_iterator > >)" で実引数 2 として渡されたオブジェクトのスライスは、暗黙的な型変換が原因で発生します
c++ - Intel Inspector が std::mutex メモリ リークを報告する
Intel Inspector は、最も単純な std::mutex の例からでも内部メモリ リークを報告します。
Intel Inspector XE 2013 レポートは次のとおりです。
ここで私が間違っていることがありますか、それとも私が制御できない既知のカーネル内部メモリリークですか?
マルチスレッド デバッグ /MTd フラグを使用して Intel C++ コンパイラを使用してサンプルをコンパイルし、すべての最新の更新プログラムを適用した Windows 7 で Visual Studio 2012 Update 3 を実行します。
std::lock_guard
また、メモリリークします:
Intel Inspector XE 2013std::lock_guard
レポート:
c++ - Intel Inspector 検査 dll
Intel Inspector を使用して DLL を分析したいと考えています。この DLL はプラグイン アプリケーション用です。拡張フォルダーに移動し、別のアプリケーション mainApp.exe から実行されます。
しかし、Intel Inspector では、UI から新しいプロジェクトを作成すると、開いているタブでアプリケーションをプロファイリングする必要があり、拡張子が .exe のファイルのみを受け入れます。
ソースを .exe ファイルにコンパイルできません。これは、メインがないためです。DLL を実行するには、他に 2 つの .exe を起動する必要があります。mainApp.exe と、mainApp のメニュー バーから実行する SDKapp.ex です。コンパイルしようとしましたが、具体的には LNK 2019 エラーが発生しました。これは、サブシステムをコンソールに変更しても消えません。
したがって、AQTime などの他のプロファイラーを使用する必要がありますか、または Intel Inspector から DLL をプロファイリングする方法はありますか。
c++ - Intel Inspector がデバッグ シンボルを見つけられない Visual C++ MFC
Visual C++ MFC プロジェクトでインテル® Inspector ソフトウェアを使用してメモリーを分析し始めたところです。分析は正常に実行され、ツールによっていくつかのエラーが検出されました。しかし、Intel Inspector で「Symbol information not found」と表示されるため、問題のソース ファイルとコード行に移動できません。
さらに、「プロジェクトのプロパティ ダイアログ ボックスの検索タブで場所を指定し、結果を再解決する」という推奨事項を示します。
Intel Inspector の [Project Properties] ダイアログに移動し、(ビルドされた .exe ファイルと .pdb ファイルの両方が作成されたときに) Debug ディレクトリを明示的に追加し、アプリケーションを再分析しようとしましたが、違いはありません。どの部分が欠けていますか? シンボルが見つからないのはなぜですか?
VS2010 を実行しています (Intel Inspector を VS2010 プラグインとスタンドアロン バージョンの両方で同じ結果で実行しようとしました)、x64 デバッグ ビルド構成、[プロパティ] -> [リンカー] -> [デバッグ] で [デバッグ データの生成] を [はい] に設定します。
c++ - SHGetFolderPath() でメモリ リークが発生するのはなぜですか? (C++)
アプリケーションのメモリ リークを見つけるために Intel Inspector を実行しています。ここで、次のことを行う MyGetPath() という関数があるとします。
Intel Inspector を実行すると、40 バイトのリークが報告され、割り当てサイトは SHGetFolderPath 行です。しかし、なぜリークが発生するのでしょうか?また、それを回避するにはどうすればよいでしょうか?