1

COMを使用してVB.NETの別のプロジェクトと通信するネイティブC++プロジェクトがあります。ネイティブdllを参照する別のexeにプロジェクトをアタッチすることで、過去にネイティブプロジェクトのプロファイルを作成することができました。dllhost.exeに接続して、ネイティブプロジェクトのプロファイルを作成しようとしています。dllhostを介してデバッグできるため、この構成は機能しますが、コードをプロファイリングしようとすると(または、デバッグ中にプロファイラーをdllhostにアタッチすると)、プロファイラーが停止し、次の出力が得られます。

PRF0010: Launch Aborted - Unable to start vsperfmon.exe
Error VSP1712: Invalid File: C:\...\MyProj110609.vsp
PRF0025: No data was collected.

別の構成を使用して結果を取得できるため、プロファイラーが機能することはわかっています。また、デバッグ構成が機能することも知っています。何が悪いのかについて何か考えはありますか?

4

1 に答える 1

5

いくつかの調査の結果、dllhost でこれを行う唯一の方法は、コマンド ライン プロファイラーを使用することであることがわかりました。VS 2010 コマンド プロンプトに移動し、次のように入力します。

VSPerfCmd /start:sample /output:c:\TestFile.vsp
VSPerfCmd /attach:[PID]

ここc:\TestFile.vspで、 は出力ファイルの名前とパス、[PID]は dllhost のプロファイル ID です。プロファイリングしたいものを実行し、完了したら入力します

VSPerfCmd /detach:[PID]
VSPerfCmd /shutdown

パフォーマンス レポートが表示されます。

于 2011-07-21T14:22:39.263 に答える