1

(Win32平台c++)使用__try和__finally,如何获取异常原因的模块名称(和地址)?我调用 GetExceptionInformation() 但我不确定此信息在哪里。

鉴于在线和 MSDN 中的其他资源,Minidump 处理程序和其他示例代码似乎能够获得它,但我不确定如何获得。

任何参考资料或更具启发性的资源都值得赞赏。

4

2 回答 2

3

EXCEPTION_POINTERS 提供的 EXCEPTION_RECORD 记录包括发生异常的地址。然后,您可能可以使用 EnumProcessModules() 和 GetModuleInformation() 来定位异常地址所在的模块,然后使用 GetModuleFileNameEx() 来获取该模块的文件名。

于 2009-08-14T19:09:38.130 回答
1

您想要遍历调用堆栈,如本 CodeProject 文章中所述。

您可以按原样使用 Jochen 的代码,或者尝试收集足够的细节来提取您想要的信息。

于 2009-08-14T18:58:13.147 回答