Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinDbg-查看System.Web.Compilation.BuildManager';s结果缓存_C#_Debugging_Memory Leaks_Windbg_Buildmanager - Fatal编程技术网

C# WinDbg-查看System.Web.Compilation.BuildManager';s结果缓存

C# WinDbg-查看System.Web.Compilation.BuildManager';s结果缓存,c#,debugging,memory-leaks,windbg,buildmanager,C#,Debugging,Memory Leaks,Windbg,Buildmanager,我正在调试内存泄漏。我无法复制它,但当程序在特定情况下运行时,我会以大约60MB/小时的速度得到稳定的泄漏。几天后,当堆为~2GB时,我进行转储并连接WinDbg !!heapdump–stat 显示了1.2GB的哈希表。 这大约是堆的55% !!dumpheap-类型为System.Collections.Hashtable+KeyCollection 给出153080哈希表实例的地址 !!其中一些实例的gcroot表示它们都属于Me.Logger拥有的线程 RSP:28f67e840:Roo

我正在调试内存泄漏。我无法复制它,但当程序在特定情况下运行时,我会以大约60MB/小时的速度得到稳定的泄漏。几天后,当堆为~2GB时,我进行转储并连接WinDbg

!!heapdump–stat
显示了1.2GB的哈希表。 这大约是堆的55%

!!dumpheap-类型为System.Collections.Hashtable+KeyCollection
给出153080哈希表实例的地址

!!其中一些实例的gcroot表示它们都属于Me.Logger拥有的线程

RSP:28f67e840:Root:0000000245edb7d0(Me.Logger)->
0000000245edb9d8(System.Threading.Thread)->
00000002459b9830(System.Runtime.Remoting.Contexts.Context)->
00000002459b9548(System.AppDomain)->
0000000245a1fed0(System.ResolveEventHandler)->
00000002259697a0(System.Web.Compilation.BuildManager)->
0000000245a20120(System.Web.Compilation.MemoryBuildResultCache)->
00000002459c2a48(System.Web.Caching.CacheMultiple)->
00000002459c2a70(System.Object[])->
00000002459c7e08(System.Web.Caching.CacheSingle)->
00000002459c9008(System.Web.Caching.CacheUsage)->
00000002459c9030(System.Object[])->
00000002459c9138(System.Web.Caching.UsageBucket)->
00000001b996fba8(System.Web.Caching.UsagePage[])->
00000001ae054388(System.Web.Caching.UsageEntry[])->
0000000251576590(System.Web.Caching.CacheEntry)->
00000002515761a0(System.Web.Mobile.MobileCapabilities)->
00000002515742c8(System.Collections.Hashtable)->
0000000251576548(System.Collections.Hashtable+KeyCollection)
我不知道如何解释这个输出。似乎System.Web.Compilation.BuildManager有一个巨大的缓存

BuildManager、MobileCapabilities、ResolveEventHandler——我在代码库中不使用这些

我是WinDbg的新手。我如何进一步调试它

我怎样才能看到哈希表中的内容?(SoS v2.0.50727,因此无垃圾收集)。
我怎样才能看到BuildManager构建了什么?

您尝试过SOSEX扩展吗。 它具有SOS的大部分功能,包括!DumpCollection您需要的命令(尽管我还没有测试它是否能与CLR的V2一起工作)以及其他一些有用的东西

也许这个博客可以帮助你,她有一些关于托管内存泄漏调试的非常好的信息:


您尝试过SOSEX扩展吗。 它具有SOS的大部分功能,包括!DumpCollection您需要的命令(尽管我还没有测试它是否能与CLR的V2一起工作)以及其他一些有用的东西

也许这个博客可以帮助你,她有一些关于托管内存泄漏调试的非常好的信息: