Delen via


De richtlijnen voor het oplossen van problemen met vastlopen van toepassingen of services

Dit artikel bevat richtlijnen voor het oplossen van problemen met het vastlopen van toepassingen of services.

Van toepassing op: alle ondersteunde versies van Windows Server en Windows Client

Wanneer u gebeurtenis-id 1001 en gebeurtenis-id 1000 herhaaldelijk in het toepassingslogboek ziet, geeft dit aan dat een toepassing vastloopt. Het gebeurt samen met processen van het eerste of derde bedrijf en verwijst naar een mogelijke foutieve module.

In dit artikel wordt het proces beschreven voor het controleren van de gebeurtenis, het begrijpen van de informatie in de gebeurtenis en het afhandelen van de gebeurtenis op basis van of het een eerste toepassing of een toepassing van derden is. Hulpprogramma's voor foutopsporing voor Windows worden in dit proces gebruikt.

Voordat u begint

Overwegingen:

  • Controleer of u de meest recente updates uitvoert voor de geïnstalleerde versie van het besturingssysteem.
  • Controleer of de betrokken toepassing up-to-date is.
  • Als antivirussoftware is geïnstalleerd, controleert u of deze wordt uitgevoerd op de nieuwste versie en of de benodigde uitsluitingen aanwezig zijn.

De informatie over gebeurtenis-id 1001 level geeft aan of Windows Foutrapportage (WER) is ingeschakeld in het systeem. U moet deze service echter wijzigen om de level informatie te verzamelen die vereist is voor het onderzoek. Deze informatie wordt niet standaard vastgelegd door het systeem om een lichte overhead van de prestaties te voorkomen.

De gebeurtenis-id 1000 met het Error niveau is de werkelijke gebeurtenis voor het vastlopen van de toepassing. Hier ziet u de volgende informatie als voorbeeld:

Log Name:      Application
Source:        Application Error
Date:          <Date Time>
Event ID:      1000
Task Category: Application Crashing Events
Level:         Error
Keywords:      
User:          SYSTEM
Computer:      demo.contoso.com
Description:
Faulting application name: netsh.exe, version: 10.0.22621.1, time stamp: 0x13af0815
Faulting module name: netsh.exe, version: 10.0.22621.1, time stamp: 0x13af0815
Exception code: 0xc0000005
Fault offset: 0x0000000000005399
Faulting process id: 0x0xFEE4
Faulting application start time: 0x0x1DAB66BB5BE07D4
Faulting application path: C:\WINDOWS\system32\netsh.exe
Faulting module path: C:\WINDOWS\system32\netsh.exe
Report Id: <Report ID>
Faulting package full name: 
Faulting package-relative application ID:

Het presenteert vaak een Microsoft-module als de foutieve module, bijvoorbeeld ntdll.dll, kernel32.dll en kernelbase.dll. Deze modules worden sterk gebruikt terwijl processen worden uitgevoerd en worden overgestapt tussen de gebruikersmodus en de kernelmodus. In het proces worden ze gevangen als slachtoffers van andere soorten corruptie die eerder zijn uitgevoerd door verkeerd gedragen modules.

Algemene uitzonderingen:

  • 0xc0000022

    STATUS_ACCESS_DENIED

  • 0xc0000005

    STATUS_ACCESS_VIOLATION

  • 0xc0000374

    STATUS_HEAP_CORRUPTION

Wanneer er een uitzondering optreedt, kunt u aanvullende uitgebreide logboekregistratie voor het proces inschakelen en een volledige procesdump verzamelen met behulp van Windows Foutrapportage (WER) en GFlags (gflags.exe).

Installeer de hulpprogramma's voor foutopsporing voor Windows om gflags.exe op te halen, zoals deze is opgenomen in de hulpprogramma's. U hoeft het bestand echter alleen te kopiëren zonder de hulpprogramma's op de computer te installeren waarvoor probleemoplossing nodig is.

Gegevens verzamelen

Voor het voorgaande voorbeeld van een netsh.exe crash stelt u de computer in om dumps te verzamelen voor meer informatie over wat de crash heeft veroorzaakt. Vervang netsh.exe door het uitvoerbare bestand dat is geïdentificeerd in gebeurtenis-id 1000 op uw apparaat.

  1. Stel WER in om volledige procesdumps van de uitzondering te verzamelen door de volgende opdrachten uit te voeren vanaf een opdrachtprompt met verhoogde bevoegdheid:

    reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe"
    
    reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe"/v DumpFolder /t REG_EXPAND_SZ /d "C:\WER" /f
    
    md C:\WER
    
    reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpCount /t REG_DWORD /d 10 /f
    
    reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpType /t REG_DWORD /d 2 /f
    
    reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe"
    
    reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpFolder /t REG_EXPAND_SZ /d "C:\WER" /f
    
    reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpCount /t REG_DWORD /d 10 /f
    
    reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\netsh.exe" /v DumpType /t REG_DWORD /d 2 /f
    

    Met deze opdrachten kunnen maximaal 10 volledige procesdumps van het netsh.exe proces worden verzameld en opgeslagen in de map C:\WER .

    Notitie

    De registerlocatie Windows op Windows 64 (WOW64) wordt toegevoegd, waardoor 32-bits toepassingen kunnen worden uitgevoerd op 64-bits systemen.

  2. Stel GFlags in om heap-toewijzingen te bewaken om de beschadiging te traceren.

    Navigeer naar de map waar het hulpprogramma zich bevindt en voer de volgende opdrachten uit vanaf een opdrachtprompt met verhoogde bevoegdheid.

    Als u de heap-vlag voor pagina's inschakelen (hpa) wilt inschakelen:

    Gflags.exe /i netsh.exe +hpa
    

    De heapvlag Pagina inschakelen uitschakelen:

    Gflags.exe /i netsh.exe -hpa
    

    Start het proces opnieuw om de instelling van kracht te laten worden.

  3. Controleer de map C:\WER en controleer op gemaakte dumps.

Gegevens analyseren

Zodra u de procesdumps hebt, kunt u het volgende doen:

  • Deel de relevante dumps met de derde partij voor onderzoek als het proces een proces van derden is.
  • Neem contact op met Microsoft Ondersteuning om de gegevens te analyseren als het proces een proces van een eerste partij is.
  • Gebruik het foutopsporingsprogramma (windbg.exe) dat is geïnstalleerd met hulpprogramma's voor foutopsporing voor Windows en probeer de foutieve module te bepalen met behulp van de extensie !analyze.

Nadat u de gegevens hebt verzameld en het onderzoek hebt voltooid, verwijdert u de registersleutel (de sleutel met de procesnaam) en schakelt u de heapvlag pagina inschakelen voor GFlags uit.