【发布时间】:2019-10-17 12:20:44
【问题描述】:
我有一个大型 MFC 程序。我们很少有客户收到CMemoryException 的情况。
问题是,我们得到了异常,但没有得到引发异常的位置。
我可以拦截 IAT(导入地址表),但在这种情况下,我只能检测到从我的应用程序到 MFC DLL 或从其他 DLL 到 MFC DLL 的调用。
如何拦截AfxThrowMemoryException 的所有呼叫?所以所有来自 MFC DLL 的调用也可以被我捕获。
其实我不知道我要捕获的函数的内部地址。好的,我可以使用 IAT 并计算内部地址。
我知道 Detours,但我也不想在我的软件中提供它..
或者有没有更简单的方法可以在 C++ 代码中调用 throw 操作?
最好的办法是,我可以在抛出任何异常之前捕获它们。这样我就可以看到调用者代码了。
【问题讨论】: