!heap -s 在 Windbg 中未显示不断增长的堆

发布于 2024-10-12 20:06:42 字数 414 浏览 4 评论 0原文

我编写了一个正在泄漏内存的应用程序 - 我过去已经执行了以下操作

  1. 查找正在泄漏的堆 !heap -s

  2. 检查堆 !heap -stat -h

  3. 查看分配的调用堆栈 !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

  1. find the heap that's leaking with
    !heap -s

  2. inspect the heap with
    !heap -stat -h

  3. see 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空心空情空意 2024-10-19 20:06:42

重点 - 当分配量小于 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文