如果使用k
命令在WinDbg中输出调用堆栈,则输出在开头包含两列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]
...