作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 C CLI 程序在 Windows 7 中崩溃并生成此错误:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
首先,我在某处读到,这可能是导致 assert
语句触发的原因,因此作为第一个措施,我用 if 语句替换了它们,以捕获并记录任何潜在的失败断言。其次,我用 printf
语句喷射代码来查看程序退出的位置。第三,我特别确保在没有首先记录退出的情况下代码不会在任何地方退出。该程序是线程化的,因此发生了很多事情,但没有太复杂。
现在的问题是,我第二次收到错误时,它表明程序在我的 printf
语句之外退出,因此我无法判断它在哪里退出。
有两个问题:
assert
语句之外,还有关于此类错误的其他问题吗?我发现很多关于此错误的 C++
博客文章,但没有太多 C
博客文章。我使用的是 Visual C++ 2008 Express Edition。另外,我正在调用 CMD.exe
中的程序。
最佳答案
首先,您删除了对 assert
的调用,这通常是为了帮助追踪程序员所做的假设不成立的情况?真的吗?嗯...
其次,您对调试器熟悉吗? Visual C++ 应该包含一个集成的调试器,当您的程序在 Debug模式下运行时,它不仅可以向您显示进程从何处退出,还可以准确地向您显示程序崩溃的位置以及它是如何崩溃的。那一点以及崩溃时变量的值是什么。想象一下!
这个article主要讲C#,但原理是一样的。
关于c - 如何在我的 C 程序中捕获此 "This application has requested the Runtime to terminate it in an unusual way"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16229294/
我是一名优秀的程序员,十分优秀!