Пример #1
0
        internal IEnumerable <ClrRoot> EnumerateHandleRoots()
        {
            var            walker   = new NativeHandleRootWalker(this, _dacRawVersion != 10);
            HANDLECALLBACK callback = new HANDLECALLBACK(walker.RootCallback);
            IntPtr         ptr      = Marshal.GetFunctionPointerForDelegate(callback);

            _sos.TraverseHandleTable(ptr, IntPtr.Zero);
            GC.KeepAlive(callback);

            return(walker.Roots);
        }
Пример #2
0
        internal IEnumerable<ClrRoot> EnumerateHandleRoots()
        {
            var walker = new RhHandleRootWalker(this, m_dacRawVersion != 10);
            HANDLECALLBACK callback = new HANDLECALLBACK(walker.RootCallback);
            IntPtr ptr = Marshal.GetFunctionPointerForDelegate(callback);
            m_sos.TraverseHandleTable(ptr, IntPtr.Zero);
            GC.KeepAlive(callback);

            return walker.Roots;
        }