3

開発 IDE がインストールされていない Windows 8 システム (Visual Studio C++) で C++ アプリのクラッシュをテストしています。Windows イベント ログから次の情報を取得できました。

Fault bucket , type 0
Event Name: APPCRASH
Response: Not available
Cab Id: 0

Problem signature:
P1: my_app_name.exe
P2: 1.0.2.0
P3: 4fffd4db
P4: my_app_name.exe
P5: 3.0.2.0
P6: 4fffd4db
P7: c0000005
P8: 00074eb0
P9: 
P10: 

Attached files:
C:\Windows\Temp\WER4AEB.tmp.appcompat.txt
C:\Windows\Temp\WER4B0B.tmp.WERInternalMetadata.xml
C:\Windows\Temp\WER4B0C.tmp.hdmp
C:\Windows\Temp\WER4CD2.tmp.dmp

These files may be available here:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_my_app_name.exe_8ea1c961fdc39248f2954cb7413ed349afffc9_cab_0d004d0d

Analysis symbol: 
Rechecking for solution: 0
Report Id: 4c93c3b5-ccc2-11e1-9b6e-000c297b96e1
Report Status: 4
Hashed bucket: 

.hdmp および .dmp ファイルを取得するために提供されたパスに移動しようとしましたが、そのレポートでそれが指す場所はありません。

この状況を処理する方法はありますか?

4

2 に答える 2

3

あなたのサービスのクラッシュダンプはおそらくここに書かれていると思います:

%WINDIR%\System32\Config\SystemProfile

これによると、これがWin 8の同じパスであるかどうかはわかりません.

AdPlusまたはProcDumpを使用するか、 MiniDumpWriteMiniDumpを使用してプログラムでこれを実行し、選択した場所にメモリ ダンプを書き込むことができます。また、ETWをイベント トレースに使用することもできます。

ダンプ ファイルは、Visual Studio または WinDbg で開くことができ、アプリの状態を確認できます。

WinDbg で:

!analyze -v

クラッシュの原因を見つけようとします。これが役立つことを願っています。

于 2012-07-13T09:29:40.643 に答える
1

Visual Studioリモートデバッガーツール(google it)を使用して、VisualStudioを介して実行中のプロセスに接続できます。もちろん、マシンは同じネットワーク上にある必要があります。

  1. 「デバッグ->プロセスへの接続」に移動します。
  2. トランスポートを「リモート」に変更します
  3. 「修飾子」にターゲットマシンのIPを入力します
  4. アタッチするプロセスを選択します。
  5. デバッグ!

また、クラッシュダンプ(.hdmp、.dmp ...がで利用可能C:\ProgramData\Microsoft\Windows\WER\ReportQueue\)がある場合は、WinDBGを介して実行できます。これにより、!analyze -vコマンドの実行後にコード行が示されます(シンボルとソースコードパスが設定されている場合)。ターゲットマシンにWinDBGをインストールする必要はありません。

于 2012-07-13T09:27:23.247 に答える