gpt4 book ai didi

c - 如何在我的 C 程序中捕获此 "This application has requested the Runtime to terminate it in an unusual way"错误?

转载 作者:行者123 更新时间:2023-11-30 15:49:29 25 4
gpt4 key购买 nike

我有一个 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 语句之外退出,因此我无法判断它在哪里退出。

有两个问题:

  1. 我怀疑我需要使用适当的调试器来查看有关退出的更多详细信息,如果需要,是哪一个?
  2. 除了 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com