0

古いVB6アプリケーションに.Netコンポーネント(C#、COM相互運用機能)を追加しました。変更の前後で、古いアプリケーションがクラッシュすることがあります(アクセス違反)。ただし、違いは、事後デバッガー(つまり、drwtsn32.exe)が起動されなくなったことです。バグは.Net呼び出しスタックの一部ではないため、C#でエラーをキャッチすることはできません。そのため、MyHandlerもトリガーされません。

AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);

事後デバッグを再度トリガーする方法は?助けてくれてありがとう!GMore

4

2 に答える 2

1
  1. デバッガー/ダンパーがクラッシュ時に実行されるようにレジストリを構成できます。Googleの詳細(ユーザーモードダンプの収集および自動デバッグの構成を参照)。
  2. Hans Passantが述べたように、いくつかのツールは2番目のチャンスの例外でダンプを作成することで問題を解決できます(ただし、エラーがランダムでまれである場合、それらはあまり役に立ちません):ProcDump(SysInternals)、ADPlus(Debugging Tools forウィンドウズ)。
于 2013-01-09T21:34:34.210 に答える
1

ProcDumpは、XPシステム(問題が発生する場所)で事後デバッガーとして正常に機能しますが、.netがアプリケーションの一部である場合、drwtsn32は失敗します。助けてくれてありがとう!

于 2013-01-10T07:45:44.533 に答える