【问题标题】:How to avoid ChildEBP and RetAddr in WinDbg call stack?如何避免 WinDbg 调用堆栈中的 ChildEBP 和 RetAddr?
【发布时间】:2016-04-26 09:54:15
【问题描述】:

如果在 WinDbg 中使用k 命令输出调用堆栈,则输出的开头包括两列 ChildEBP 和 RetAddr:

ChildEBP RetAddr  
0151d9c8 55c59339 KERNELBASE!RaiseException+0x48
0151da08 00e15b3a msvcr120!_CxxThrowException+0x5b [f:\dd\vctools\crt\crtw32\eh\throw.cpp @ 152]
...

鉴于我想通过调用堆栈的相似性来聚集许多故障转储,ChildEBP 和 RetAddr 地址阻止了我这样做:即使调用堆栈实际上是相同的,它们也是不同的,只是因为 DLL 所在的地址不同已加载。

很明显,这些东西可以通过一些简单的文本处理来删除,但可能在 WinDbg 中有一些命令允许显示没有 ChildEBP 和 RetAddr 的调用堆栈:

KERNELBASE!RaiseException+0x48
msvcr120!_CxxThrowException+0x5b [f:\dd\vctools\crt\crtw32\eh\throw.cpp @ 152]
...

?

【问题讨论】:

  • kc 应该做你想做的事。它显示一个 clean 堆栈跟踪。
  • @SeanCline,谢谢它对我有用

标签: windbg dump callstack


【解决方案1】:

正如 Sean Cline 在 cmets 中已经提到的,kc 显示了一个clean堆栈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2014-04-17
    • 1970-01-01
    • 2010-11-30
    • 2012-09-23
    • 2011-11-23
    • 2010-12-04
    相关资源
    最近更新 更多