相关疑难解决方法(0)

"!heap -flt -s xxxx"windbg命令中的不同列代表什么?

我一直在做一些关于高内存问题的工作,我在windbg中做了很多堆分析,我很好奇不同的列在"!heap -flt -s xxxx"命令中的含义.

我读了windbg!heap输出中'size'数字的含义是什么?,我查看了我的"Windows Internals"一书,但我仍然有一堆问题.所以列和我的问题如下.

**HEAP_ENTRY** - What does this pointer really point to? How is it different than UserPtr?
**Size** - What does this size mean? How is it different than UserSize?
**Prev** - This just appears to be the negative offset to get to the previous heap entry. Still not sure exactly how it's used.
**Flags** - Is there any documentation on these flags?
**UserPtr** - What is the user pointer? In all cases I've …
Run Code Online (Sandbox Code Playgroud)

debugging heap windbg

19
推荐指数
1
解决办法
5444
查看次数

!heap -stat -h 不显示分配

我试图确定为什么我的应用程序消耗 4GB 的私有字节。所以我做了一个完整的内存转储,把它加载到windbg中。但是分析 using!heap -stat -h会产生奇怪的结果,这些结果不会相加:

0:000> !heap -s
(...)
          Heap     Flags   Reserv  Commit  Virt   Free  List   UCR  Virt  Lock  Fast 
                            (k)     (k)    (k)     (k) length      blocks cont. heap 
-------------------------------------------------------------------------------------
000002d0a0000000 00000002 2800804 2780508 2800700   2984  1980   177    0      6   LFH
000002d09fe10000 00008000      64      4     64      2     1     1    0      0      
000002d09ff70000 00001002 1342924 1334876 1342820  13042  3342    87    0      0   LFH
Run Code Online (Sandbox Code Playgroud)

好的,我得到了一个 2.8GB 的​​堆和一个 1.34GB 的堆。让我们看看第一个的分配:

0:000> !heap -stat -h 000002d0a0000000 
 heap @ 000002d0a0000000
group-by: TOTSIZE max-display: …
Run Code Online (Sandbox Code Playgroud)

heap windbg

5
推荐指数
1
解决办法
4913
查看次数

标签 统计

heap ×2

windbg ×2

debugging ×1