Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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
使用WinDBG和SOS调试Silverlight时出现死区_Silverlight_Debugging_Windbg_Sos - Fatal编程技术网

使用WinDBG和SOS调试Silverlight时出现死区

使用WinDBG和SOS调试Silverlight时出现死区,silverlight,debugging,windbg,sos,Silverlight,Debugging,Windbg,Sos,我是WinDBG的新手。我正在寻找内存泄漏的原因,我已经尽我目前所能找到了 我的MVVM应用程序正在泄漏MyLovelyView对象 在WinDBG中我运行!dumpheap-键入MyLovelyView并获取以下信息: Address MT Size 05f2a978 0bc948d4 12 05f39638 04d51114 36 05f398d4 04d27734 96 05f7db28 04d51114

我是WinDBG的新手。我正在寻找内存泄漏的原因,我已经尽我目前所能找到了

我的MVVM应用程序正在泄漏
MyLovelyView
对象

在WinDBG中我运行
!dumpheap-键入MyLovelyView
并获取以下信息:

Address       MT     Size
05f2a978 0bc948d4       12     
05f39638 04d51114       36     
05f398d4 04d27734       96     
05f7db28 04d51114       36     
05f7dd70 04d27734       96     
05fc48f4 04d51114       36     
05fc4b3c 04d27734       96     
total 0 objects
Statistics:
      MT    Count    TotalSize Class Name
0bc948d4        1           12 MyNamespace.Unity.ProviderUnityExtension+FactoryStrategy+Provider`1[[IMyLovelyViewModel, MyNamespace]]
04d51114        3          108 MyNamespace.MyLovelyViewModel
04d27734        3          288 MyNamespace.MyLovelyView
Total 7 objects
Note: Roots found on stacks may be false positives. Run "!help gcroot" for
more info.
Scan Thread 5 OSTHread 3428
Scan Thread 19 OSTHread 36a0
Scan Thread 20 OSTHread 1280
Scan Thread 23 OSTHread 2e90
Scan Thread 24 OSTHread 3738
Scan Thread 27 OSTHread 2398
DOMAIN(04936520):HANDLE(Pinned):44f12f8:Root:  066e4260(System.Object[])->
  056f946c(System.Collections.Generic.List`1[[System.Object, mscorlib]])->
  05ed1920(System.Object[])->
  05f8891c(ThirdParty.Control.DiagramPanel)->
  05f7e1e8(ThirdParty.Control.Diagram)->
  05f7f79c(System.Windows.DataContextChangedEventHandler)->
  05f7f748(System.Windows.Data.BindingExpression)->
  05f7db28(MyNamespace.MyLovelyViewModel)->
  05f7dd70(MyNamespace.MyLovelyView)
我知道目前我不应该在内存中有任何
MyLovelyView
对象,我已经强制GC运行了多次,以确保它们不会只是挂在那里

因此,我使用命令
检查根!gcroot 05f7dd70
,其结果如下:

Address       MT     Size
05f2a978 0bc948d4       12     
05f39638 04d51114       36     
05f398d4 04d27734       96     
05f7db28 04d51114       36     
05f7dd70 04d27734       96     
05fc48f4 04d51114       36     
05fc4b3c 04d27734       96     
total 0 objects
Statistics:
      MT    Count    TotalSize Class Name
0bc948d4        1           12 MyNamespace.Unity.ProviderUnityExtension+FactoryStrategy+Provider`1[[IMyLovelyViewModel, MyNamespace]]
04d51114        3          108 MyNamespace.MyLovelyViewModel
04d27734        3          288 MyNamespace.MyLovelyView
Total 7 objects
Note: Roots found on stacks may be false positives. Run "!help gcroot" for
more info.
Scan Thread 5 OSTHread 3428
Scan Thread 19 OSTHread 36a0
Scan Thread 20 OSTHread 1280
Scan Thread 23 OSTHread 2e90
Scan Thread 24 OSTHread 3738
Scan Thread 27 OSTHread 2398
DOMAIN(04936520):HANDLE(Pinned):44f12f8:Root:  066e4260(System.Object[])->
  056f946c(System.Collections.Generic.List`1[[System.Object, mscorlib]])->
  05ed1920(System.Object[])->
  05f8891c(ThirdParty.Control.DiagramPanel)->
  05f7e1e8(ThirdParty.Control.Diagram)->
  05f7f79c(System.Windows.DataContextChangedEventHandler)->
  05f7f748(System.Windows.Data.BindingExpression)->
  05f7db28(MyNamespace.MyLovelyViewModel)->
  05f7dd70(MyNamespace.MyLovelyView)
我曾尝试使用第三方控件复制泄漏,这是一个简单的虚拟应用程序,到目前为止,还没有成功

在这一点上,我被卡住了。有更多调试经验的人知道我的下一步应该是什么吗

有关其他信息,请参见
MyLovelyView
中的XAML如下所示:

<Grid x:Name="LayoutRoot" Background="White">
    <Control:Diagram SomeProperty="{Binding SomeBoundProperty}" />
</Grid>
Note: Roots found on stacks may be false positives. Run "!help gcroot" for
more info.
Scan Thread 5 OSTHread 36b4
Scan Thread 20 OSTHread 17c0
Scan Thread 21 OSTHread 3300
Scan Thread 22 OSTHread 3570
Scan Thread 23 OSTHread 2968
Scan Thread 26 OSTHread 2934
Scan Thread 27 OSTHread 34d8
DOMAIN(04DA8FE8):HANDLE(Pinned):37812f8:Root:  07324260(System.Object[])->
  0633946c(System.Collections.Generic.List`1[[System.Object, mscorlib]])->
  06a72860(System.Object[])->
  06b3823c(ThirdParty.Control.DiagramPanel)->
  06b2d8f8(ThirdParty.Control.Diagram)->
  06b2f568(System.Windows.Controls.Grid)->
  06b2d67c(MyNamespace.MyLovelyView)->
  06b2d7f0(System.Windows.DataContextChangedEventHandler)->
  06b2d79c(System.Windows.Data.BindingExpression)->
  06b2d434(MyNamespace.MyLovelyViewModel)

(所有内存地址都已更改,因为这是重新运行)

我看到您也在使用Unity…Prism?你看到了吗,不知道它是否连接,但我想我会把它扔出去…@Aaron好主意,但我在child视图中没有区域。谢谢你指出这一点,我会记住的。DiagramPanel是如何从你的应用程序中引用的?@Brian如果你想模板化图表的外观,你可以使用DiagramPanel。然而,在本例中,我没有使用模板,因此您看到的DiagrampPanel实例完全位于图的内部。顺便说一句,
06a72860(System.Object[])
在最后的输出中包含所有泄漏的DiagramPanel。我不确定这是否相关。