如何在 Visual C++ 程序中每次抛出异常时运行一些代码?

sha*_*oth 5 c++ exception visual-c++

如果在 C++ 程序中引发异常,则控制将被转移到异常处理程序或被terminate()调用。

即使程序从处理程序内部(或从terminate()处理程序)发出一些诊断信息,也可能为时已晚 - 最大的值位于抛出异常时的调用堆栈中,而不是处理程序中。

[StackWalk64()在 Windows 上,可以使用] 1函数获取调用堆栈。关键是如何在正确的时刻调用该函数。

有没有办法让 Visual C++ 程序在每次抛出异常(或未设置处理程序的异常)时执行一些用户代码?

ice*_*ime 2

在 Windows 上,我使用SetUnhandledExceptionFilterMiniDumpWriteDump来生成小型转储。