c++ - 约后 APPCRASH 40 秒

标签 c++ windows-7 crash-reports

我有一个多线程服务器应用程序,它在第一个 ca 时运行良好。 40 秒(此时应用程序几乎只在等待传入的数据包)。这 40 秒后它突然崩溃,尽管没有任何变化,没有连接客户端,没有发送数据等等。

我从 Windows 收到的崩溃报告是这样的:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: myapplicationname.exe
  Application Version:  0.0.0.0
  Application Timestamp:    508d2a0b
  Fault Module Name:    StackHash_58df
  Fault Module Version: 6.1.7600.16385
  Fault Module Timestamp:   4a5bdb3b
  Exception Code:   c0000374
  Exception Offset: 000cdcbb
  OS Version:   6.1.7600.2.0.0.256.48
  Locale ID:    1031
  Additional Information 1: 58df
  Additional Information 2: 58df710f17985997dec7b600103e4fd6
  Additional Information 3: bc2b
  Additional Information 4: bc2b581ed6e84cb4442c19134e8081d3

我检查了可能的缓冲区溢出、内存泄漏,但事实并非如此(至少我没有注意到)。

除此之外,更让我困惑的是,如果我编译它并在 Visual Studio(本地 Windows 调试器)中运行它,则不会发生此错误,也不会崩溃,一切都按预期进行。我不知道从哪里开始才能解决这个问题,因为我从来没有遇到过这样的问题。

我知道没有代码就很难诊断某些东西,但代码太多了,我无法限制它,因为我不知道这个错误甚至意味着什么以及它与什么有关。我只是希望有人遇到过类似的事情或者知道这个错误是什么意思。到目前为止,我只找到了如何解决其他程序的类似问题(答案是重新安装应用程序)。

大胆猜测: 我有一个轮询循环,它给我的一个线程带来了很大压力,因为我没有达到实现整个​​代码的目的。是否有可能调用 DEP 并停止我的应用程序以保护我的一个 CPU? -添加了一个 sleep 但没有改变任何东西。

最佳答案

Exception Code: c0000374

您会在 ntstatus.h SDK 头文件中找到这些异常代码:

//
// MessageId: STATUS_HEAP_CORRUPTION
//
// MessageText:
//
// A heap has been corrupted.
//
#define STATUS_HEAP_CORRUPTION           ((NTSTATUS)0xC0000374L)

堆损坏当然是一种非常常见的 C++ 编程危害。如果找不到错误,请使用 crtdbg.h 中可用的调试分配器。

关于c++ - 约后 APPCRASH 40 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109097/

相关文章:

c++ - 使用 sscanf 读取数字怎么会崩溃?

c++ - Qt - 同时处理多个数据库连接

类外的C++虚函数实现

image - ffmpeg在从图像生成的视频中缺少图像帧

ios - 如何在 Xcode 中调试 EXC_BREAKPOINT (SIGTRAP)

c++ - 具有动态分配成员的结构 vector

ruby - 'json' 原生 gem 需要安装构建工具

internet-explorer - 如何以编程方式检测 Internet Explorer 是否已关闭?

android - Droid 上的 zz_moto_actionbar_bkg.xml 资源错误

android - Android 上的崩溃报告在开发者控制台中的位置