jjzjj

SetUnhandledExceptionFilter

全部标签

c# - SetUnhandledExceptionFilter 如何在 .NET WinForms 应用程序中工作?

我正在做一个项目来增强我们的生产调试能力。我们的目标是在任何未处理的异常上可靠地生成小型转储,无论异常是托管的还是非托管的,以及它是发生在托管线程还是非托管线程上。我们使用优秀的ClrDump目前这个库,但它并没有完全提供我们需要的确切功能,我想了解异常过滤背后的机制,所以我开始自己尝试这个。我首先按照这篇博客文章自己安装了一个SEH处理程序:http://blogs.microsoft.co.il/blogs/sasha/archive/2007/12.aspx.此技术适用于控制台应用程序,但当我在WinForms应用程序中尝试相同的操作时,我的过滤器不会因各种非托管异常而被调用。C

c++ - 使用 SetUnhandledExceptionFilter() 为访问冲突异常创建小型转储

每当我的代码生成结构化异常时,我都会使用以下代码创建一个小型转储文件:voidCreateMiniDump(EXCEPTION_POINTERS*pep){//OpenthefiletypedefBOOL(*PDUMPFN)(HANDLEhProcess,DWORDProcessId,HANDLEhFile,MINIDUMP_TYPEDumpType,PMINIDUMP_EXCEPTION_INFORMATIONExceptionParam,PMINIDUMP_USER_STREAM_INFORMATIONUserStreamParam,PMINIDUMP_CALLBACK_INFOR

c++ - 为什么 SetUnhandledExceptionFilter 无法捕获某些异常但 AddVectoredExceptionHandler 可以

我遇到了一个问题,我传递给SetUnhandledExceptionFilter的函数当异常代码c0000374引发时没有被调用。但它适用于异常代码c0000005。然后我尝试使用AddVectoredExceptionHandler相反,它没有问题,处理函数被正确调用。是API错误吗?我可以到处使用AddVectoredExceptionHandler而不是SetUnhandledExceptionFilter吗?这两个函数都可以正常工作//Exceptioncodec0000005int*p1=NULL;*p1=99;只有AddVectoredExceptionHandler可以捕