首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >address -summary中的RegionUsageHeap是什么意思?

address -summary中的RegionUsageHeap是什么意思?
EN

Stack Overflow用户
提问于 2011-10-28 00:25:03
回答 1查看 338关注 0票数 1

我有一个与本机动态链接库互操作的.NET应用程序,具有以下层。

a) C++接口GetNames()返回wchar_t实例列表

b) C++/CLI接口GetNames2()代码调入wchar接口,将wchar列表编组成.NET字符串,返回该.NET字符串列表

c)托管代码C#调用互操作层GetNames2()接口并显示字符串列表

我正在调用互操作层中的CoTaskMemFree API来释放本机wchar字符串。然而,我只是想知道如何查看由于缺少CoTaskMemFree调用而导致的内存泄漏。所以我注释掉了对CoTaskMemFree的调用。在这种情况下,我的理解是,如果我附加windbg并运行!address -summary命令,在本机上完成的任何分配(尚未释放)都应该显示在RegionUsageHeap下,但它似乎不会报告它。我如何在windbg中查看本机内存使用情况(在托管代码的上下文中)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-31 16:43:30

RegionUsageHeap是用于所有本机堆的总使用量,该值以相当大的块递增,并且在此变量中必须观察到相当大的内存泄漏。

您可以使用!heap命令。CoTaskMemAlloc使用默认的每进程堆,它通常是!heap -s输出中的第一个句柄,或者在!peb输出中关注“ProcessHeap”。

拥有此句柄后,使用!heap -stat-h查看分配了多少块。

您也可以转储整个堆,请查看windbg帮助中的!heap命令。示例:

代码语言:javascript
代码运行次数:0
运行
复制
0:011> !heap -stat -h 00150000   
heap @ 00150000  
group-by: TOTSIZE max-display: 20  
size     #blocks     total     ( %) (percent of total busy bytes)  
44      82f - 22c7c  (8.73)  
20000     1 - 20000  (8.03) 
<I have cut here>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7919155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档