Onverklaarbare crashes gerelateerd aan ntdll.dll

Ik heb een applicatie die ik heb geschreven die af en toe crasht, maar ik kan geen uitzondering vastleggen op de applicatielaag. Ik krijg altijd een vermelding in het gebeurtenislogboek, maar geeft me niet veel informatie:

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 

Zoals je kunt zien, krijg ik dit:

Pad naar module met fout: C:\WINDOWS\SYSTEM32\ntdll.dll.

Ik weet niet zeker wat dat is of hoe het verband houdt met de crashes, maar ik heb het op meerdere machines kunnen reproduceren en ik weet niet hoe ik de oorzaak kan achterhalen of voorkomen.

Update: ik ben op een punt beland waarop de toepassing crasht bij het opstarten met de bovenstaande reden. Het komt aan het einde van de MainWindow-constructor (het is een WPF-toepassing), zit daar ongeveer 10 seconden op een wit scherm en sterft dan. Ik ben teruggegaan naar oudere versies van de software en heb dit gedrag gereproduceerd. Ik heb het ook naar een andere machine verplaatst en heb dit gedrag NIET gezien, dus mijn huidige theorie is in overeenstemming met wat er in de opmerkingen werd gezegd – dat iets de heap heeft beschadigd en dat het alleen wordt opgeruimd bij een herstart.

Update 2: ik kan deze foutmelding produceren wanneer ik buiten de debugger draai, hoewel ik bij het uitvoeren in de debugger het niet kan laten stoppen bij een uitzondering:

er is een algemene fout opgetreden in GDI+

Dus daar ga ik vandaag op jagen. Interessant en verontrustend genoeg crasht de app elke keer bij het opstarten, zelfs na opnieuw opstarten. Hetzelfde gedrag doet zich op dit moment niet voor op andere machines.


Antwoord 1, autoriteit 100%

Om dit soort interne systeemproblemen op te lossen, raad ik u aan Procesmonitor te proberen .

Process Monitor is een geavanceerde monitoringtool voor Windows die realtime bestandssysteem-, register- en proces-/thread-activiteit toont.

In principe moet u uitkijken voor de “NAME NOT FOUND”-fouten, wat betekent dat er dll’s of registersleutels ontbreken, of andere verdachte fouten op het beeldscherm.


Antwoord 2, autoriteit 45%

De laatste keer dat ik een soortgelijke crash had in mijn app die naar ntdll.dll wees als de defecte module, was de realiteit dat mijn eigen code een geheugenlek had. Ik deed een strcpy op een string waaraan geen geheugen was toegewezen. Iets als,

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

Ik vond dit na een inspannende doorloop van mijn code.

Controleer uw code op lekken.

Other episodes