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