【发布时间】:2011-01-29 18:24:44
【问题描述】:
目前我使用SetUnhandledExceptionFilter() 提供回调以在发生未处理的异常时获取信息,该回调将为我提供EXCEPTION_RECORD,它提供ExceptionAddress。
[1]ExceptionAddress 实际上是什么?是给出异常的函数/代码的地址,还是某个函数试图访问的内存地址?
[2]当发生未处理的异常时,是否有更好的机制可以为我提供更好的信息? (我不能使用调试模式或添加任何影响运行时性能的代码,因为崩溃很少见,并且只有在代码尽可能快地运行时才会在发布版本中)
[3]当发生未处理的异常时,有什么方法可以让我获得多个调用堆栈地址。
[4]假设ExceptionAddress 的地址为A,并且我在基址A-x 加载并执行了DLL X,在A+y 加载并执行了其他一些DLL Y,那么假设崩溃是很好的可能是由 DLL X 上的代码引起的?
【问题讨论】:
标签: c++ exception dll crash callback