gpt4 book ai didi

loops - 如何在 Windbg 中编写这样的循环?

转载 作者:行者123 更新时间:2023-12-04 21:01:06 24 4
gpt4 key购买 nike

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

提前致谢,
乔治

最佳答案

这是我尚未测试过的脚本,但可能会为您解决问题。我基于 Tess 为 dumping out all session variables on the heap for ASP.net. 编写的脚本

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;

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

你应该能够通过在你的一个 Foo 上做一个 !dumpobject 并查看它的结构来做到这一点。

希望有帮助。

关于loops - 如何在 Windbg 中编写这样的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/597928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com