Windbg!将输出堆到.foreach
在windbg中进行一些调试,我希望能够遍历给定大小的每个堆分配,然后对其进行一些分析(现在只做dd)。问题是!垃圾堆把东西扔得不干净 我知道我可以使用.foreach标志跳过第一个X或每个Y标记,但似乎无法实现这一点 基本上是想做这样的事情:Windbg!将输出堆到.foreach,windbg,Windbg,在windbg中进行一些调试,我希望能够遍历给定大小的每个堆分配,然后对其进行一些分析(现在只做dd)。问题是!垃圾堆把东西扔得不干净 我知道我可以使用.foreach标志跳过第一个X或每个Y标记,但似乎无法实现这一点 基本上是想做这样的事情: .foreach (ADDR {!heap -flt s <size of allocation>}) {dd ADDR} .foreach(ADDR{!heap-flt s}{dd ADDR} 有没有一种方法,除了输出到一个文件,做一些
.foreach (ADDR {!heap -flt s <size of allocation>}) {dd ADDR}
.foreach(ADDR{!heap-flt s}{dd ADDR}
有没有一种方法,除了输出到一个文件,做一些awking然后反馈回来?好吧,我不认为
!heap
命令有一个短选项可在.foreach
中使用。您可能可以尝试使用.shell
命令grep输出
HTH好吧,我不认为
!heap
命令有一个短选项可在.foreach
中使用。您可能可以尝试使用.shell
命令grep输出
HTH我一直在寻找同一个问题的答案,下面是我找到的最简单的方法:
!heap -flt s [your alloc size]
c:\temp\test.txt
0000000011af12e0 0400 0000 [00] 0000000011af12f0 03ff0 - (busy)
0000000011af52e0 0400 0400 [00] 0000000011af52f0 03ff0 - (busy)
0000000011af92e0 0400 0400 [00] 0000000011af92f0 03ff0 - (busy)
0000000011afd2e0 0400 0400 [00] 0000000011afd2f0 03ff0 - (busy)....
.logopen /t c:\temp\Output.txt
将进一步的输出保存到某个文件,因为您将有一个looong文件.foreach /pS4 /ps3 /f ( obj "c:\temp\test.txt" ) { !heap -p -a obj }
万岁!有效:)我一直在寻找同一个问题的答案,下面是我找到的最简单的方法:
!heap -flt s [your alloc size]
c:\temp\test.txt
0000000011af12e0 0400 0000 [00] 0000000011af12f0 03ff0 - (busy)
0000000011af52e0 0400 0400 [00] 0000000011af52f0 03ff0 - (busy)
0000000011af92e0 0400 0400 [00] 0000000011af92f0 03ff0 - (busy)
0000000011afd2e0 0400 0400 [00] 0000000011afd2f0 03ff0 - (busy)....
.logopen /t c:\temp\Output.txt
将进一步的输出保存到某个文件,因为您将有一个looong文件.foreach /pS4 /ps3 /f ( obj "c:\temp\test.txt" ) { !heap -p -a obj }
万岁!它是有效的:)啊,要想得到这么简单的东西,需要解析出一堆东西!不过谢谢你的回答。啊,要想得到这么简单的东西,需要分析很多东西!谢谢你的回答。