Jes*_*per 6 c# windows dll ntdll
我有一个编写的应用程序间歇性崩溃,但是我无法在应用程序层捕获异常。我总是在事件日志中得到一个条目,但没有给我太多信息:
Faulting application name: BCS-UI.exe, version: 1.0.11.0, time stamp: 0x5c0edcbd
Faulting module name: ntdll.dll, version: 10.0.17134.376, time stamp: 0x4358e406
Exception code: 0xc0000374
Fault offset: 0x000d8829
Faulting process id: 0x39b0
Faulting application start time: 0x01d49161c80079a0
Faulting application path: C:\Gogs Local\SMR_Windows_UI\BCS-UI\BCS-UI\bin\Release\BCS-UI.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll
Report Id: 1fbc4761-d256-44b0-99b0-4d9d758e4fe0
Faulting package full name:
Faulting package-relative application ID:
- System
- Provider
[ Name] Application Error
- EventID 1000
[ Qualifiers] 0
Level 2
Task 100
Keywords 0x80000000000000
- TimeCreated
[ SystemTime] 2018-12-11T15:12:28.109191000Z
EventRecordID 23318
Channel Application
Computer Leviathan
Security
- EventData
BCS-UI.exe
1.0.11.0
5c0edcbd
ntdll.dll
10.0.17134.376
4358e406
c0000374
000d8829
39b0
01d49161c80079a0
C:\Gogs Local\SMR_Windows_UI\BCS-UI\BCS-UI\bin\Release\BCS-UI.exe
C:\WINDOWS\SYSTEM32\ntdll.dll
1fbc4761-d256-44b0-99b0-4d9d758e4fe0
Run Code Online (Sandbox Code Playgroud)
如您所见,我得到了:
错误的模块路径:C:\ WINDOWS \ SYSTEM32 \ ntdll.dll。
我不确定那是什么或者它与崩溃有什么关系,但是我已经能够在多台机器上重现它,而如何确定原因或防止它的发生我却一头雾水。
更新:由于以上原因,我到了启动时应用程序崩溃的地步。它到达MainWindow构造函数(它是WPF应用程序)的末尾,在白屏上停留约10秒钟,然后死掉。我已回滚到该软件的旧版本,并重现了此行为。我也将其移至另一台计算机上,但未发现此行为,因此我的当前理论与注释中所说的相符-某些东西破坏了堆,并且只有在重新启动后才能清除。
更新2:在调试器外部运行时,我能够产生此错误消息,尽管在调试器中运行时,我无法使它停止于异常:
GDI +中发生一般性错误
这就是我今天要寻找的。有趣且令人不安的是,该应用程序每次启动时都会崩溃,即使在重新启动后也是如此。目前,在其他计算机上不会发生相同的行为。
小智 6
上次我在我的应用程序中发生类似的崩溃,指向 ntdll.dll 作为故障模块,现实是我自己的代码有内存泄漏。我对未分配内存的字符串执行了 strcpy。就像是,
char * str;
strcpy(str, "Hello");
Run Code Online (Sandbox Code Playgroud)
在对我的代码进行了艰苦的演练后,我发现了这一点。
检查您的代码是否有泄漏。
| 归档时间: |
|
| 查看次数: |
11784 次 |
| 最近记录: |