【问题标题】:Full Memory Dump missing stack information全内存转储缺少堆栈信息
【发布时间】:2011-12-14 20:10:59
【问题描述】:

我正在尝试调试来自客户的高 CPU 问题。我试过让他们使用 procdump,但是,它在编写转储时挂起而从未完成。相反,当 CPU 级别达到峰值时,客户使用键盘启动了完整的内存转储。

我希望能够看到所有进程线程的堆栈跟踪,但我只能看到任何一个线程的前 4-6 个堆栈帧。这令人沮丧,因为这些帧仅包含由错误检查启动的陷阱例程。我是 WinDbg 的新手,所以我不确定如何收集这些信息。我通过执行以下操作获取堆栈信息:

2: kd> !process 0 0 process.exe
PROCESS 8997f590  SessionId: 0  Cid: 094c    Peb: 7ffd6000  ParentCid: 01c4
DirBase: 503f1000  ObjectTable: e53f1880  HandleCount: 1924.
Image: process.exe
2: kd> !process 8997f590
PROCESS 8997f590  SessionId: 0  Cid: 094c    Peb: 7ffd6000  ParentCid: 01c4
DirBase: 503f1000  ObjectTable: e53f1880  HandleCount: 1924.
[...]
THREAD 89daf4f0  Cid 094c.0950  Teb: 7ffdf000 Win32Thread: e53f1ae0 WAIT: (Unknown) UserMode Non-Alertable
8997f8ac  NotificationEvent
[...]
ChildEBP RetAddr  
    b8cf9c04 8083d26e nt!KiSwapContext+0x26 (FPO: [Uses EBP] [0,0,4])
    b8cf9c30 8083dc5e nt!KiSwapThread+0x2e5 (FPO: [Non-Fpo])
    b8cf9c78 809208d7 nt!KeWaitForSingleObject+0x346 (FPO: [Non-Fpo])
    b8cf9ca0 8093aef7 nt!IopSynchronousServiceTail+0x180 (FPO: [Non-Fpo])
    b8cf9d38 8083387f nt!NtReadFile+0x5d5 (FPO: [Non-Fpo])
    b8cf9d38 7c82847c nt!KiFastCallEntry+0xfc (FPO: [0,0] TrapFrame @ b8cf9d64)
WARNING: Frame IP not in any known module. Following frames may be wrong.
    0012fc58 00000000 0x7c82847c
[...]

如果我切换到任何线程的上下文并运行,例如,kb 50 我仍然只会得到前几帧。反正有没有得到调用堆栈的其余部分?如果分页到磁盘,此信息是否不可用?

此外,有关如何调试高 CPU 使用率的任何提示都会有所帮助。

【问题讨论】:

    标签: windows debugging windbg cpu-usage dump


    【解决方案1】:

    试试:

    !process 8997f590 1f
    

    本文描述了您遇到的问题:

    http://www.osronline.com/article.cfm?id=576

    基本上,完整的内存转储包含许多不同的进程上下文。为了查看用户模式状态,您需要确保调试器使用正确的进程上下文(在这种情况下,0x10 标志将执行此操作)。

    在调试高 CPU 使用率方面,!process 0 1 将显示每个进程的用户和内核 CPU 时间。如果一组特定的进程出现峰值,则应该从输出中清楚地看到。然而,跟踪此问题的更好选择可能是 xperf,它会在一段时间内对 CPU 进行采样(而不是像您在这里一样只查看时间快照)。

    -斯科特

    【讨论】:

      猜你喜欢
      • 2017-12-20
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多