【问题标题】:Windbg: SOS.dll: !gcroot: DOMAIN(xxx):HANDLE(Pinned):Does it really mean object is pinned?Windbg: SOS.dll: !gcroot: DOMAIN(xxx):HANDLE(Pinned):这真的意味着对象被固定了吗?
【发布时间】:2009-08-05 04:04:12
【问题描述】:

关于 SOS.dll Windbg 扩展的文档似乎很少。发出 !gcroot

后,我得到了包含以下内容的内容:
DOMAIN(XXX):HANDLE(Pinned):XXX:Root:XXX(System.Object[])->

“HANDLE(Pinned)”真的是否意味着有一个 GCHandleType.Pinned 类型的 GCHandle 正在植根于这个对象?

【问题讨论】:

    标签: windbg sos


    【解决方案1】:

    它本身可能不是固定的,而是可能是一个静态引用。看这里:http://blogs.msdn.com/dougste/archive/2005/11/25/497016.aspx

    【讨论】:

      【解决方案2】:

      是的,这确实意味着对象已固定。现在你必须找出是什么在固定对象并阻止它被垃圾回收。

      【讨论】:

        【解决方案3】:

        我知道http://social.msdn.microsoft.com/Forums/en-US/clr/thread/e52936b4-15c4-434f-91b9-4640df66d0c6 的 MSFT 版主 Karel Zikmund 说“是”。但我正在寻找额外的意见、见解等。谢谢!

        【讨论】:

          【解决方案4】:

          是的。另一个可能代替 pinned 的值是 WeakLn,这意味着它将在下一次扫描时被垃圾收集。

          【讨论】:

            猜你喜欢
            • 2020-06-12
            • 1970-01-01
            • 2020-06-21
            • 1970-01-01
            • 2023-01-03
            • 2022-06-16
            • 2010-09-18
            • 1970-01-01
            • 2018-09-04
            相关资源
            最近更新 更多