!heap -s 在 Windbg 中未显示不断增长的堆
我编写了一个正在泄漏内存的应用程序 - 我过去已经执行了以下操作
查找正在泄漏的堆 !heap -s
检查堆 !heap -stat -h
查看分配的调用堆栈 !heap -p -a
为了获取调用堆栈,我将 +ust 添加到 gflags,
虽然我过去已经成功地做到了这一点,但 !heap -s 今天没有显示任何增长?我不知道出了什么问题?
就像我的分配位于隐藏在 !heap -s? 的堆中一样
想法?我正在使用 Visual Studio 2010 pro 进行编译(x86 和 x64)。使用windbg进行调试
I have written an application that is leaking memory - I've done the following in the past
find the heap that's leaking with
!heap -sinspect the heap with
!heap -stat -hsee the callstack for the allocation with
!heap -p -a
to get the callstacks I add +ust to gflags
while I've done this in the past with great success, !heap -s isnt showing any growth today? I have no idea whats wrong?
it's like my allocations are in a heap hidden from !heap -s?
ideas? I'm compiling (both x86 and x64) using Visual Studio 2010 pro. Using windbg to debug
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
重点 - 当分配量小于 1MB(默认)时,它们会转到 HeapAlloc(),当分配量大于 1MB 时,它们会转到 VirtualAlloc,而不是
VirtualAlloc 不会出现在 !heap -s 中
the punchline - when allocations are <1MB (default) they go to HeapAlloc(), when they're bigger than 1MB they go to VirtualAlloc instead
VirtualAlloc doesnt appear with !heap -s