大约APPCRASH 40秒

时间:2012-10-28 13:18:44

标签: 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? - 增加睡眠但没有改变任何东西。

1 个答案:

答案 0 :(得分:1)

  

例外代码:c0000374

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

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

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