如何在C++/Windows中捕获每个异常
How to catch EVERY exception in C++/Windows?
我有一个DLL,它被注入到非常旧的、有缺陷的中,现在它的开发人员应用程序不支持它。有时该应用程序会崩溃,我需要一些方法来捕捉所有未处理的异常(来自DLL),这些异常可能会发生以保存数据,然后才允许应用程序崩溃。我怎样才能做到这一点?
目前,有一个用于此目的的外部调试器,但它太慢了,而且有缺陷,无法保持这种状态。
您必须启动一个承载DLL的新进程。如果DLL要崩溃,不管你喜欢与否,它都会导致进程中断。当然,您可以尝试捕获异常或类似的东西,但如果抛出异常,则意味着内存已损坏。与其让程序在不一致的状态下继续运行,不如灾难性地崩溃。
windows shell是一个真正做到这一点的程序——它在代理进程中启动一些插件,这样,如果插件崩溃,就不会导致整个shell崩溃。您需要使用进程间通信来在自己和启动的代理之间进行通信。
相关文章:
- Windows.h CONDITION_VARIABLE导致异常 (C/C++)
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- cv:内存位置的异常 - 运行 openCV 代码 Visual Studio 2013 & Visual Studio 2017 - Windows 7
- C++Windows DLL:不同函数中的异常处理
- Windows 错误报告和超出范围的异常
- 如何在 Windows 异常处理程序中设置 MMX 寄存器以模拟不受支持的 3DNow! 说明
- 用Win32/C API更改Windows 7壁纸(未实现操作异常)
- 我可以从Windows SEH异常中解码C 异常吗?(如果是这样,怎么样?)
- 文本框为空时,C++Windows窗体应用程序出现未处理的异常错误
- 文本框为空时C++ Windows 窗体应用程序未处理的异常错误
- C++ / WIndows - 无法捕获异常
- 从 C# 加载C++ Windows 运行时组件时出现异常
- .NET 4.0在XP上出现未知异常,但在Windows 7上运行良好
- 在成功运行10小时后,在发布模式下从windows应用程序中获得异常,如何检测出问题
- Windows API DiInstallDevices导致异常
- 为什么在此方法中添加cout行可以阻止我的程序在Windows中触发缓冲区溢出异常?
- Windows下的异常处理和堆栈跟踪(MinGW/gcc)
- opencv 3.0和mingw在windows 7下使用AKAZE时出现异常
- 在Windows上支持线程的Qt应用程序中的c++崩溃/异常处理程序
- 混合c++异常处理和SEH (windows)