示例#1
0
文件: PdbReader.cs 项目: slamj1/dnlib
        internal void GetCustomDebugInfos(DbiFunction symMethod, MethodDef method, CilBody body, IList <PdbCustomDebugInfo> result)
        {
            const string CDI_NAME    = "MD2";
            var          asyncMethod = PseudoCustomDebugInfoFactory.TryCreateAsyncMethod(method.Module, method, body, symMethod.AsyncKickoffMethod, symMethod.AsyncStepInfos, symMethod.AsyncCatchHandlerILOffset);

            if (asyncMethod != null)
            {
                result.Add(asyncMethod);
            }

            var cdiData = symMethod.Root.GetSymAttribute(CDI_NAME);

            if (cdiData == null)
            {
                return;
            }
            PdbCustomDebugInfoReader.Read(method, body, result, cdiData);
        }
        internal void GetCustomDebugInfos(SymbolMethodImpl symMethod, MethodDef method, CilBody body, IList <PdbCustomDebugInfo> result)
        {
            var asyncMethod = PseudoCustomDebugInfoFactory.TryCreateAsyncMethod(method.Module, method, body, symMethod.AsyncKickoffMethod, symMethod.AsyncStepInfos, symMethod.AsyncCatchHandlerILOffset);

            if (asyncMethod is not null)
            {
                result.Add(asyncMethod);
            }

            const string CDI_NAME = "MD2";

            reader.GetSymAttribute(method.MDToken.Raw, CDI_NAME, 0, out uint bufSize, null);
            if (bufSize == 0)
            {
                return;
            }
            var cdiData = new byte[bufSize];

            reader.GetSymAttribute(method.MDToken.Raw, CDI_NAME, (uint)cdiData.Length, out bufSize, cdiData);
            PdbCustomDebugInfoReader.Read(method, body, result, cdiData);
        }