我的应用程序在没有任何正确消息的情况下突然崩溃。
应用程序是在任何CPU中构建的,并且在64位计算机上运行。
在崩溃时,它使用的是1.5GB
内存。
项目将所有操作流程存储在SQLCe4.0
中作为后端数据库,项目大小几乎在2.8 GB
左右。
当我检查Windows事件查看器时,消息是这样的:
Problem signature:
Problem Event Name: APPCRASH
Application Name: MyApp.exe
Application Version: 2.7.710.1137
Application Timestamp: 51dcf6b1
**Fault Module Name: StackHash_6bac**
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Code: c0000005
Exception Offset: 000000007782000a
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Information 1: 6bac
Additional Information 2: 6bac59273bcf6f09b20009b5873b0c76
Additional Information 3: 2600
Additional Information 4: 2600c3cc88a8c9bf041ae82fe9962258
在线阅读我们的隐私声明: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
如果没有在线隐私声明,请离线阅读我们的隐私声明:
C:\Windows\system32\en-US\erofflps.txt
我无法弄清楚失败的确切原因是什么。
任何帮助将不胜感激。
答案 0 :(得分:5)
Exception Code: c0000005
是ACCESS_VIOLATION,that is您的程序正在尝试访问自己的内存区域。 Fault Module Name: StackHash_6bac
表示故障地址为no module was loaded:
答案是Windows执行人员无法识别该模块 我们在应用程序崩溃时(它使用指令) 用于确定正在执行的代码的指针。在这种情况下, 内核只需要一个堆栈的哈希值,所以至少我们可以 确定我们之前是否已经看过这个确切的崩溃。这是答案 由微软的工程师总结:
在操作系统中,当我尝试获取错误模块名称时,可能是 该地址没有模块加盖(原文如此)。例如在这 EIP为零的情况。因此,在未加载模块的情况下 并且它也不在卸载的模块列表中,我采用堆栈哈希 堆栈,以便我们可以从其他崩溃中识别此崩溃 该模块也未知。
鉴于这一切,很可能您遇到了一些资源泄漏,最终导致此访问冲突错误。