Необъяснимые сбои, связанные с ntdll.dll - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть приложение, которое я написал, которое периодически прерывается, но я не могу перехватить исключение на уровне приложения.Я всегда получаю запись в журнале событий, но не даю мне много информации:

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 \ SYSTEM32 \ ntdll.dll.

Я не уверен, что это такое или как это относится к сбоям, но я смог воспроизвести его на нескольких машинах, и я не знаю, как определить причинуили не допустить этого.

Обновление: я попал в точку, в которой происходит сбой приложения при запуске по вышеуказанной причине.Он доходит до конца конструктора MainWindow (это приложение WPF), сидит там около 10 секунд на белом экране и затем умирает.Я откатился к более старым версиям программного обеспечения и воспроизвел это поведение.Я также перенес его на другую машину и НЕ видел этого поведения, поэтому моя текущая теория согласуется с тем, что было сказано в комментариях - что-то повредило кучу, и это только очищается при перезагрузке.

Обновление 2: я могу выдать это сообщение об ошибке при запуске вне отладчика, хотя при работе в отладчике я не могу остановить его на исключении:

в GDI произошла общая ошибка +

Так что я буду охотиться сегодня.Интересно и достаточно тревожно, приложение вылетает каждый раз при запуске, даже после перезагрузки.В это время такое поведение не происходит на других машинах.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

В последний раз, когда в моем приложении происходил аналогичный сбой, который указывал на ntdll.dll как на неисправный модуль, реальность состояла в том, что в моем собственном коде произошла утечка памяти.Я сделал strcpy для строки, которая не была выделена память.Что-то вроде

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

Я нашел это после напряженного прохождения моего кода.

Проверьте код на наличие утечек.

0 голосов
/ 19 декабря 2018

Для устранения подобных внутренних проблем системы я предлагаю вам попробовать Монитор процессов

Монитор процессов - это расширенный инструмент мониторинга для Windows, который показывает файловую систему в реальном времени,Операции с реестром и процессом / потоком.

enter image description here

По сути, вам нужно высматривать ошибки "NAME NOT FOUND", что означает отсутствие библиотек или ключей реестра, или любые другиедругие подозрительные ошибки на экране монитора.

...