转储文件中“Wait Start TickCount”和“Ticks”的含义

Luc*_*cky 3 windbg dump

当我使用WinDBG分析内核模型转储文件时,我可以获得某些线程的信息。但有一些项目让我感到困惑。

所以请帮我理解以下关键字的含义。谢谢。

  1. 等待开始 TickCount

  2. 蜱虫

  3. 用户时间

  4. 内核时间


这是一个例子。

    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])
Run Code Online (Sandbox Code Playgroud)

Tho*_*ler 5

等待开始 TickCount是线程开始等待的计算机内部时间表示,即线程从状态“运行”更改为状态“等待”的时间。

Ticks是从 Wait Start TickCount 到现在的差异。这些值可能会影响线程调度(与其他值一起,例如优先级)。

用户时间是线程拥有顶部有用户模式函数的调用堆栈的时间量。

内核时间是线程拥有顶部具有内核模式函数的调用堆栈的时间量。这应该与用户模式调试中显示的值相对应!runaway。这两个时间都不包括等待时间,只是线程真正执行CPU指令时的实际运行时间。