首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获abort()

捕获abort()
EN

Stack Overflow用户
提问于 2014-01-04 01:48:58
回答 2查看 174关注 0票数 1

我在一个c++应用程序中引用了一个WPF库,不幸的是它的代码已经丢失了。我很确定这个库正在调用abort(),或者正在做一些导致进程终止的事情。有没有一种方法可以捕获这样的东西,以便我可以记录和/或故障排除?

编辑:我得到的具体错误是:

代码语言:javascript
复制
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.

然后该进程退出。

EN

回答 2

Stack Overflow用户

发布于 2014-01-04 02:03:21

如果您引用的库(有意或无意地)会导致整个过程中断,那么您的第一个目标显然应该是避免这种情况。寻找补丁,替代引用,修复引用(如果可能)等。考虑库被馈送坏数据的可能性,或者是否有其他方式通过正确使用所述库来避免它首先崩溃。这是一个不好的位置,很可能是一个信号,即使你可以从中恢复,你的程序很可能会处于你不想要的状态。

在使用这样的库时,最好的办法是在一个完全独立的进程中运行它,假设您在这方面没有选择。启动一个工作进程,并使用某种形式的进程间通信,让它传回您让库执行的任何操作的结果。这样,库只会关闭这个工作进程,并且您至少可以适度安全地知道您的主进程处于一种状态,在这种状态下继续运行是一个有效的选择。

票数 3
EN

Stack Overflow用户

发布于 2014-01-04 05:17:47

为了“捕捉”中止,我想你可以直接在abort()中设置一个断点。让你的初始化代码以某种方式引用它(函数指针等)若要获取它的地址,请跳到反汇编窗口上的此地址,以便在那里放置断点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20909699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档