非托管组件用于分配/分配的内存区域

时间:2011-06-23 20:58:24

标签: .net windbg sos unmanaged-memory

假设.net托管应用程序通过InterOP与非托管组件进行交互。如果我必须调试内存问题;确切的非托管组件分配内存的位置?它是GC使用的堆(我怀疑)还是其他一些区域?我正在做Windbg调试,想知道我是否可以通过SoS命令看看非托管组件的分配,比如!dumpheap?

1 个答案:

答案 0 :(得分:3)

在Windbg中,您可以!heap使用inspect native heap memory。 GC(托管)堆与本机代码堆使用不相交,但在某种程度上我的假设是托管堆必须映射(在CLR内)到一个或多个本机堆上。

SoS纯粹用于托管代码调试 - WinDbg首先是本机代码调试工具。

umdh.exe也可能有用,但我没有在混合模式的应用中尝试过这种方法。