wkhtml2pdf を呼び出す Rotativa を呼び出すコードがいくつかあります。wkhtml2pdf.exe が Corrupted State Exception (CSE) をスローする原因になっていると思われます。CSE がスローされた場合は、それをキャッチしてログに記録したいので、CSE が発生している場所を追跡できます。
デバッガーでアプリを一晩実行したままにしておくと、戻ってくると VS がシャットダウンされます。再起動することもあれば、再起動しないこともあります。メモリ破損の疑い 私は調査を開始し、CSE 処理に出くわしました。
私はこのようなことをしています:
[HandleProcessCorruptedStateExceptions]
void DoStuff()
{
try
{
DOThatThingThatMakesTheDebuggerHaltAndShutDown();
}
catch(Exception ex)
{
//how do I detect that it's a CSE in here, so I can log it especially blatantly
}
}
例外が General Catch の CSE であるかどうかを検出する方法はありますか?
私は、2 つの一般的な例外条項があるところを見ました。内側のものは CSE を処理せず、フラグを設定します。外側のものがフラグなしで呼び出された場合、それは CSE ですが、よりクリーンなものを望んでいます。私がやりたいのは、この悪い状態をログに記録し、それをアプリケーションに渡して正常にバブルアップさせることです。
VS2013 をダウンさせたイベント ログのエラーを見ると、次のようになります。
アプリケーション: devenv.exe フレームワーク バージョン: v4.0.30319 説明: 未処理の例外のため、プロセスが終了しました。例外情報: 例外コード c0000005、例外アドレス 4DA44C1F スタック: Microsoft.VisualStudio.Debugger.Clr.NativeDkmClrModuleInstance.ProcF4BC786AEBAC294EE9C4C0BB1B0F56A7 (IntPtr、IntPtr ByRef) で Microsoft.VisualStudio.Debugger.Clr.DkmClrModuleInstance.GetMetaDataImport() で Microsoft.IntelliTrace.IntelliTrace. .MetadataHelper..ctor(Microsoft.VisualStudio.Debugger.Clr.DkmClrModuleInstance) Microsoft.IntelliTrace.Concord.Integration.CpdeNotifyPointServiceAdapter.InstallBreakpoint(Microsoft.VisualStudio.Debugger.Clr.DkmClrModuleInstance、Microsoft.VisualStudio.Debugger.Interop.Internal.NP_INSTALL_REQUEST で)
Microsoft.IntelliTrace.Concord.Integration.CpdeNotifyPointServiceAdapter.BindToModule (Microsoft.VisualStudio.Debugger.Clr.DkmClrModuleInstance) で Microsoft.IntelliTrace.Concord.IntelliTraceProcessState.AlertModuleLoad (Microsoft.VisualStudio.Debugger.DkmModuleInstance) で Microsoft.IntelliTrace.Concord.NotifyPoints .NotifyPointManager.OnModuleInstanceLoad(Microsoft.VisualStudio.Debugger.DkmModuleInstance、Microsoft.VisualStudio.Debugger.DkmWorkList、Microsoft.VisualStudio.Debugger.DkmEventDescriptorS) Microsoft.VisualStudio.Debugger.EntryPoint.IDkmModuleInstanceLoadNotification_OnModuleInstanceLoad(IntPtr、IntPtr、IntPtr、IntPtr)
これに続いて:
障害が発生しているアプリケーション名: devenv.exe、バージョン: 12.0.30501.0、タイム スタンプ: 0x5361f453 障害が発生しているモジュール名: vsdebugeng.impl.DLL、バージョン: 12.0.30501.0、タイム スタンプ: 0x5361f482 例外コード: 0xc0000005 障害オフセット: 0x00094c1f 障害が発生しているプロセス ID: 0x1c9c 障害のあるアプリケーションの開始時間: 0x01cfe7cc0cf50465 障害のあるアプリケーションのパス: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe 障害のあるモジュールのパス: C:\Program Files (x86)\Microsoft Visual Studio 12.0\ Common7\Packages\Debugger\vsdebugeng.impl.DLL レポート ID: 097b17c6-5438-11e4-8409-001f2904053c