4

アプリケーションで例外が発生しています。Dr.Watson を使用して、dmp とログ ファイルをキャプチャしませんでした。WinDbg は、プログラムの例外/クラッシュ時にダンプ ファイルを作成する代替手段であると言われています。グーグルで調べた後、私は混乱の山に出くわしました。まず、WinDbgでダンプファイルを作成できるか確認したい。次に、WinDbg をアプリケーションにアタッチして、クラッシュ時にダンプ ファイルを取得するための推奨される簡単なコマンド ラインはありますか? どうもありがとう!

4

4 に答える 4

5

このような状況では、通常、ユーザーにprocdump (zip ファイルから抽出するだけで、インストールは不要) をダウンロードすることをお勧めします。次に、次のような内容を含むバッチ ファイルを提供します。

mkdir c:\dumps
procdump -e -c 10 -w myprocess.exe c:\dumps

プロセスが未処理の例外を生成すると、c:\dumpsVisual Studio または Windbg にロードできるディレクトリにダンプ ファイルが作成されます (!analyze -vコマンドはあなたの友達です)。

于 2012-05-14T20:29:00.373 に答える
3

WinDbg .dump コマンドを使用できます。

.dump /mfh /u C:\crash.dmp 

クラッシュ シナリオには、他の 2 つのツールが適しています。

于 2012-06-19T05:28:28.640 に答える
2

最適なツールを選択すると、WinDbgがダンプファイルの作成に役立つだけでなく、使いやすい代替手段もいくつか提供されることが確認されます。

于 2012-05-14T16:14:32.287 に答える
1

例外ハンドラーでクラッシュをインターセプトできる場合は、コードを使用してダンプを書き込むことができます: http://msdn.microsoft.com/en-us/library/windows/desktop/ms680360%28v=vs.85%29.aspx

それ以外の場合は、ダンプが保持する詳細レベルを指定する特定のフラグを使用して、ワトソン博士にダンプを傍受して作成するように指示する必要があります: http://blogs.technet.com/b/askperf/archive/2007/06/ 15/capturing-application-crash-dumps.aspxおよびhttp://social.technet.microsoft.com/wiki/contents/articles/8103.application-crash-dump-analysis-windows-7.aspxおよびmsdn

コマンドラインからこれを行うには、次のようにする必要があります。

cdb -pn myApp.exe -c ".symfix;.reload;.dump /ma c:\memdump\crash.dmp;qd"

これは、cdb.exe パスが検索可能であることを前提としています。

C:\Program Files (x86)\Debugging Tools for Windows (x86)\cdb -pn myApp.exe -c ".symfix;.reload;.dump /ma c:\memdump\crash.dmp;qd"

したがって、ここでのコマンド

cdb -pn   -->attaches cdb to your process name myApp.exe
-c        -->execute command
.symfix   -->fix microsoft symbols
.reload   -->reload
.dump /ma c:\memdump\crash.dmp --> write minidump to location (the flags /ma is effectively everything you want)
qd        -->quit and detach

これらのコマンドの一部は不要な場合があります。不要な場合は削除できます。

于 2012-05-14T15:57:09.217 に答える