如何获取.NET中泄漏对象的根路径引用?

如何获取.NET中泄漏对象的根路径引用?,.net,memory-management,memory-leaks,garbage-collection,memory-profiling,sos,windbg,.net,Memory Management,Memory Leaks,Garbage Collection,Memory Profiling,Sos,Windbg,我的.NET应用程序内存泄漏。与此同时,我知道哪些东西泄漏了。但不应该提及它。如何找到引用路径?哪种工具是正确的解决方案?我很感激您喜欢了解如何在引擎盖下工作。这应该给你一个起点: 创建一个 从微软获得。您可以安装x86和x64这两个版本,以便调试这两种转储 在WinDbg中打开崩溃转储(使用正确的位) 加载.NET扩展名,.loadby sos clr(对于.NET 4.x,请参阅) 使用查找您要查找的对象!dumpheap-类型MyType 使用!gcroot查看对象是否具有根引用 对于特

我的.NET应用程序内存泄漏。与此同时,我知道哪些东西泄漏了。但不应该提及它。如何找到引用路径?哪种工具是正确的解决方案?

我很感激您喜欢了解如何在引擎盖下工作。这应该给你一个起点:

  • 创建一个
  • 从微软获得。您可以安装x86和x64这两个版本,以便调试这两种转储
  • 在WinDbg中打开崩溃转储(使用正确的位)
  • 加载.NET扩展名,
    .loadby sos clr
    (对于.NET 4.x,请参阅)
  • 使用
    查找您要查找的对象!dumpheap-类型MyType
  • 使用
    !gcroot
    查看对象是否具有根引用

  • 对于特定的问题,请使用和标签提问。

    我很感激您喜欢了解引擎盖下的工作原理。这应该给你一个起点:

  • 创建一个
  • 从微软获得。您可以安装x86和x64这两个版本,以便调试这两种转储
  • 在WinDbg中打开崩溃转储(使用正确的位)
  • 加载.NET扩展名,
    .loadby sos clr
    (对于.NET 4.x,请参阅)
  • 使用
    查找您要查找的对象!dumpheap-类型MyType
  • 使用
    !gcroot
    查看对象是否具有根引用

  • 对于特定问题,请使用和标记提问。

    我建议使用红门蚂蚁内存分析器并查看一下

    我建议使用红门蚂蚁内存分析器并查看一下WinDbg或.Net内存分析器(非免费)。获取一个完整的内存转储,然后在其中一个工具中打开它。这可能有助于启动(不确定):另外,SOS.dll-WinDbg或.Net内存探查器(不是免费的)。获取一个完整的内存转储,然后在其中一个工具中打开它。这可能有助于启动(不确定):还有,SOS.dll-