僅適用於StackOverflow-exception,我在從裝載了CLR的進程配置AddVectoredExceptionHandler時努力創建MiniDump。CLR/VectoredExceptionHandler/StackOverflowException/MiniDumpWriteDump
我的處理程序被調用,將.dmp文件被創建,但隨後MiniDumpWriteDump失敗。
我沒有問題,寫了其他異常,例如轉儲AccessViolation。如果CLR未加載並且發生了StackOverflow-exceptin,那麼我也會成功寫入轉儲。
在https://github.com/NicolaiNyberg/DbgSvcExtension 上提供示例代碼,其中CrashHandler dll項目配置處理程序,SoexCh.Cs是從C#中調用的示例。
我的問題是:一旦CLR加載,可防止在StackOverflow上的異常的情況下編寫一個小型轉儲過程中有什麼相對於未處理的異常處理程序會發生什麼?
沒有足夠的堆棧空間放置,使MiniDumpWriteDump()來完成其工作。可靠的小型生產需要一個「警戒過程」。像DebugDiag一樣。 –
感謝漢斯。我剛剛閱讀了你的答案,並且我意識到我的答案/解決方案是實施你的建議。 –