2016-10-29 13 views
1

以下は、意図的に2 NullPointerExceptionを引き起こすコードスニペットです。最初のものが処理されます。一方、第2のものは処理されない。クラッシュが発生したときに2番目の例外でクラッシュダンプを作成したいと思います。procdumpを使用して未処理例外のクラッシュダンプをキャプチャする方法

int* nullPtr = NULL; 
try{ 
    x = *nullPtr; 
} 
catch(...) { 
    QLOG_WARNING0(QTEXT("catching 1st null ptr exception.")); 
} 
y = *nullPtr; 

これはプロセスをクラッシュさせますが、-eオプションを使用するとダンプは生成されません。 ダンプを取得するためにどのようなオプションを使用する必要がありますか?

debugDiagツールでこれを実現する方法はありますか?もしそうなら、どうですか?

これはサンプルコードです。私がデバッグしている実際のユースケースにはプロセスがクラッシュしていますが、クラッシュのダンプを取ることができません。最初のチャンス・オプション(-e 1)を使用した場合にダンプがトリガーされる有効な処理例外があります。これにより、実際のクラッシュが発生する前にprocdumpが終了します。あなたのコメントパー

+0

Procdumpを使用する必要がありますか?クラッシュダンプを収集する他の方法があります。 – rrirower

+0

いいえ他のツールを利用することはできません。私は、例えば "debugDiag"を見つけましたが、この目的で私の目的を解決することができませんでした。これらのツールや他のツールを使用する方法があるかもしれません。 –

答えて

0

「いいえ、私は他のツールを開いています。」

、トラップダンプファイルを他の方法があります。 Getting detailed crash dumps from a hooked exe, への私の答えでは、未処理の例外からダンプをトラップするためにいくつかのレジストリキー設定を設定できることがわかります。設定では、Windowsエラー報告が有効になっていると仮定します。。私は、私の会社が困難な顧客のクラッシュをデバッグする際に使用する小さなユーティリティプログラムに、これらの設定を組み込むために行ってきました。

+0

ありがとうございます。これは私を助けました。 –