Loops 如何像这样在Windbg中编写循环?

Loops 如何像这样在Windbg中编写循环?,loops,windbg,Loops,Windbg,我有一个名为Foo的类型,它有一个名为length的字段。我想在Windbg中编写一个循环语句,它将转储托管堆中所有Foo类型的对象实例的长度字段 提前感谢,, 乔治这是一个我没有测试过的脚本,但可能会帮你。我是根据苔丝的剧本改编的 其中的技巧是计算出length属性从主Foo引用偏移的字节数,并用正确的偏移字节数替换printf行中的“0xc” 你应该能够做到这一点,只要做一个简单的!在一个Foo上转储对象并查看其结构 希望有帮助。这里有一个非常好的答案: r @$t0=0; $$ Loop

我有一个名为Foo的类型,它有一个名为length的字段。我想在Windbg中编写一个循环语句,它将转储托管堆中所有Foo类型的对象实例的长度字段

提前感谢,,
乔治

这是一个我没有测试过的脚本,但可能会帮你。我是根据苔丝的剧本改编的

其中的技巧是计算出length属性从主Foo引用偏移的字节数,并用正确的偏移字节数替换printf行中的“0xc”

你应该能够做到这一点,只要做一个简单的!在一个Foo上转储对象并查看其结构

希望有帮助。

这里有一个非常好的答案:
r @$t0=0;

$$ Loop to get all foo's
.foreach (CurrentFoo {!dumpheap -type George.George2.Foo -short}){
    $$ Increment # of Foo's
    r @$t0 = @$t0+1

    .printf "Length:\t%d\n", poi(${CurrentFoo}+0xc);
}
.printf "Number of Foo's: %d\n\n\n\n\n\n\n\n\n", @$t0;