【发布时间】: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,谢谢它对我有用