2016-05-10 2 views
1

Wenn ich WinDBG verwenden, um eine Kernel-Modell-Dump-Datei zu analysieren, kann ich die Informationen bestimmter Thread abrufen. Aber es gibt einige Dinge, die mich verwirren.Die Bedeutung von "Warte Start TickCount" und "Ticks" in Dump-Datei

Bitte helfen Sie mir, die Bedeutung der folgenden Schlüsselwörter zu verstehen. Vielen Dank.

  1. Warten starten Tickcount

  2. Ticks

  3. Usertime

  4. KernelTime


Hier ist ein Blutzuckerwer le.

THREAD b6b48908 Cid 1038.10b0 Teb: 7ffac000 Win32Thread: fd517868 WAIT: (WrUserRequest) UserMode Non-Alertable 
     b5700630 SynchronizationEvent 
    IRP List: 
     b6ae6ab8: (0006,01d8) Flags: 00060000 Mdl: 00000000 
    Not impersonating 
    DeviceMap     95bd9310 
    Owning Process   b5614788  Image:   iexplore.exe 
    Attached Process   N/A   Image:   N/A 
    Wait Start TickCount  27465609  Ticks: 109779 (0:00:28:32.563) 
    Context Switch Count  38627    
    UserTime     00:00:00.717 
    KernelTime    00:00:00.421 
    Win32 Start Address 0x6a6439a0 
    Stack Init b8b7ded0 Current b8b7d8e0 Base b8b7e000 Limit b8b7b000 Call 0 
    Priority 11 BasePriority 8 UnusualBoost 0 ForegroundBoost 2 IoPriority 2 PagePriority 5 
    ChildEBP RetAddr Args to Child    
    b8b7d8f8 8328aefd b6b48908 8333d008 83339e20 nt!KiSwapContext+0x26 (FPO: [Uses EBP] [0,0,4]) 
    b8b7d930 83289d57 b5700630 b6b48908 b6b489ec nt!KiSwapThread+0x266 
    b8b7d958 83285af4 b6b48908 b6b489c8 00000000 nt!KiCommitThreadWait+0x1df 
    b8b7dad4 94bac293 00000001 b8b7db0c 00000001 nt!KeWaitForMultipleObjects+0x535 
    b8b7db44 94bac06c 000025ff 00000000 00000001 win32k!xxxRealSleepThread+0x20b (FPO: [SEH]) 
    b8b7db60 94ba90b4 000025ff 00000000 00000001 win32k!xxxSleepThread+0x2d (FPO: [3,0,0]) 
    b8b7dbb8 94bac685 b8b7dbe8 000025ff 00000000 win32k!xxxRealInternalGetMessage+0x4b2 (FPO: [SEH]) 
    b8b7dc1c 83249dc6 0295c7dc 00000000 00000000 win32k!NtUserGetMessage+0x4d (FPO: [SEH]) 
    b8b7dc1c 77366bf4 0295c7dc 00000000 00000000 nt!KiSystemServicePostCall (FPO: [0,3] TrapFrame @ b8b7dc34) 
    0295c790 00000000 00000000 00000000 00000000 ntdll!KiFastSystemCallRet (FPO: [0,0,0]) 

Antwort

3

Warten Starten Tickcount ist der Computer interne Zeitdarstellung, wenn der Thread started warten, das heißt, wenn es aus dem Zustand „running“ in den Zustand „Warten“ geändert.

Ticks ist der Unterschied von Wait Start TickCount bis jetzt. Diese Werte können die Thread-Planung beeinflussen (zusammen mit anderen wie den Prioritäten).

Usertime ist die Zeit, die der Thread einen Aufruf-Stack mit Benutzermodusfunktionen oben hatte.

Kerneltime ist die Zeit, die der Thread einen Call-Stack mit Kernel-Funktionen oben hatte. Dies sollte den Werten entsprechen, die von !runaway im Debugging des Benutzermodus angezeigt werden. Beide Zeiten enthalten keine Wartezeit, sondern nur die tatsächliche Laufzeit, zu der der Thread CPU-Befehle tatsächlich ausgeführt hat.

+0

Danke Tomas und Lieven. Wenn ein Thread auf dem Prozessor läuft, wird sein Wait-Start-TickCount als das letzte Mal betrachtet, als er zu warten begann, richtig? – Lucky

+1

@Lucky: ja, so dass das Feld aktualisiert wird, wenn es beim nächsten Mal zu warten beginnt –

Verwandte Themen