【问题标题】:memory area used by unmanaged componet for allocations/deallocations非托管组件用于分配/分配的内存区域
【发布时间】:2011-09-21 13:51:20
【问题描述】:

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

【问题讨论】:

    标签: .net windbg sos unmanaged-memory


    【解决方案1】:

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

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

    umdh.exe 也可能有用,虽然我没有在混合模式应用程序中尝试过。

    【讨论】:

      猜你喜欢
      • 2011-02-08
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      相关资源
      最近更新 更多