(Win32平台c++)使用__try和__finally,如何获取异常原因的模块名称(和地址)?我调用 GetExceptionInformation() 但我不确定此信息在哪里。
鉴于在线和 MSDN 中的其他资源,Minidump 处理程序和其他示例代码似乎能够获得它,但我不确定如何获得。
任何参考资料或更具启发性的资源都值得赞赏。
(Win32平台c++)使用__try和__finally,如何获取异常原因的模块名称(和地址)?我调用 GetExceptionInformation() 但我不确定此信息在哪里。
鉴于在线和 MSDN 中的其他资源,Minidump 处理程序和其他示例代码似乎能够获得它,但我不确定如何获得。
任何参考资料或更具启发性的资源都值得赞赏。
EXCEPTION_POINTERS 提供的 EXCEPTION_RECORD 记录包括发生异常的地址。然后,您可能可以使用 EnumProcessModules() 和 GetModuleInformation() 来定位异常地址所在的模块,然后使用 GetModuleFileNameEx() 来获取该模块的文件名。
您想要遍历调用堆栈,如本 CodeProject 文章中所述。
您可以按原样使用 Jochen 的代码,或者尝试收集足够的细节来提取您想要的信息。