windows 与ntdll.dll相关的不明原因的崩溃

vwkv1x7d  于 2022-12-05  发布在  Windows
关注(0)|答案(3)|浏览(779)

我编写的一个应用程序间歇性崩溃,但我无法在应用层捕获异常。我总是在事件日志中得到一个条目,但没有给予太多信息:

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

如你所见,我得到了这个:
故障模块路径:C:\WINDOWS\系统32\ntdll.dll文件中找到的。
我不知道这是什么,也不知道它与崩溃有什么关系,但我已经能够在多台机器上重现它,我不知道如何确定原因或防止它发生。
更新:由于上述原因,我已经达到了应用程序在启动时崩溃的程度。(这是一个WPF应用程序),在那里坐了大约10秒,在一个白色的屏幕上,然后死亡。我已经回滚到旧版本的软件,并重现了这种行为。我也把它移动到另一台机器,没有看到这种行为,所以我目前的理论与评论中所说的是一致的--有些东西破坏了堆,只有在重新启动时才能清除。
更新2:当在调试器外部运行时,我能够产生以下错误消息,尽管当在调试器中运行时,我不能使它在异常时停止:
GDI+中发生一般错误
这就是我今天要找的。有趣又令人不安的是,这款应用每次启动时都会崩溃,甚至在重启后也是如此。同样的行为目前不会在其他机器上发生。

klr1opcd

klr1opcd1#

要调试这类系统内部问题,我建议您尝试Process Monitor
进程监视器是一种用于Windows的高级监视工具,可显示实时文件系统、注册表和进程/线程活动。

基本上,您需要寻找“名称未找到”错误,这意味着丢失dll或注册表项,或任何其他可疑的错误在显示器屏幕上。

scyqe7ek

scyqe7ek2#

上一次我的应用程序出现类似的崩溃,指出ntdll.dll是错误模块,实际情况是我自己的代码有内存泄漏。我对一个没有分配内存的字符串执行了strcpy。类似于:

char * str;
strcpy(str, "Hello");

我在对我的代码进行了一次艰苦的演练后发现了这一点。
检查代码是否存在泄漏。

vngu2lb8

vngu2lb83#

对于那些有类似的问题,只得到这个错误,但没有其他:
执行了断点指令(__debugbreak()语句或类似调用)

尝试更新解决方案中的NuGet包。

当我更新了一些微软软件包后,那个神秘的错误就不再发生了。

相关问题