我在一个c++应用程序中引用了一个WPF库,不幸的是它的代码已经丢失了。我很确定这个库正在调用abort(),或者正在做一些导致进程终止的事情。有没有一种方法可以捕获这样的东西,以便我可以记录和/或故障排除?
编辑:我得到的具体错误是:
Microsoft Visual C++ Runtime Library
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.然后该进程退出。
发布于 2014-01-04 02:03:21
如果您引用的库(有意或无意地)会导致整个过程中断,那么您的第一个目标显然应该是避免这种情况。寻找补丁,替代引用,修复引用(如果可能)等。考虑库被馈送坏数据的可能性,或者是否有其他方式通过正确使用所述库来避免它首先崩溃。这是一个不好的位置,很可能是一个信号,即使你可以从中恢复,你的程序很可能会处于你不想要的状态。
在使用这样的库时,最好的办法是在一个完全独立的进程中运行它,假设您在这方面没有选择。启动一个工作进程,并使用某种形式的进程间通信,让它传回您让库执行的任何操作的结果。这样,库只会关闭这个工作进程,并且您至少可以适度安全地知道您的主进程处于一种状态,在这种状态下继续运行是一个有效的选择。
发布于 2014-01-04 05:17:47
为了“捕捉”中止,我想你可以直接在abort()中设置一个断点。让你的初始化代码以某种方式引用它(函数指针等)若要获取它的地址,请跳到反汇编窗口上的此地址,以便在那里放置断点。
https://stackoverflow.com/questions/20909699
复制相似问题