一点跟进:有没有办法迭代windbg中的所有帧?
~*e .echo Thread Frames and Locals:; !for_each_frame dv
Run Code Online (Sandbox Code Playgroud)
有没有办法回应如下:当前线程#{ThreadID}当前帧#{帧号}
我找不到任何代表当前帧号或线程号的变量.
.frame命令显示当前帧编号.
举个简单的例子:如果我这样做: ~*e .thread
我输出如下:
Implicit thread is now 000007ff`fffde000
Implicit thread is now 000007ff`fffdc000
Implicit thread is now 000007ff`fffd8000
Implicit thread is now 000007ff`fffd6000
Implicit thread is now 000007ff`ffefa000
Run Code Online (Sandbox Code Playgroud)
但我想看看windbg线程ID.同样,我希望看到一个遍历所有线程和框架的示例,并打印如下内容:
当前线程#00当前帧#01
我不认为你可以关闭什么!for_each_frame告诉你,你只能添加它.所以,例如:
~*e .printf "Thread is: 0x%x\n", @@c++(@$teb->ClientId.UniqueThread) ; !for_each_frame .printf "Frame is: %d\n", @$frame
Run Code Online (Sandbox Code Playgroud)
给你一些接近的东西,但输出中仍然有一些垃圾.如果您编写自己的扩展,则可以获得更大的灵活性.
归档时间: |
|
查看次数: |
4616 次 |
最近记录: |