Exemplo n.º 1
0
        private void AddLocalVars(MetadataReader pdb, SymbolScope scope, LocalVariableHandleCollection localVars)
        {
            foreach (var varHandle in localVars)
            {
                var localVar = pdb.GetLocalVariable(varHandle);

                scope.AddLocal(new SymbolVariable(pdb.GetString(localVar.Name), localVar.Attributes, localVar.Index));
            }
        }
Exemplo n.º 2
0
        private void AddChildScopes(MetadataReader pdb, SymbolScope parent, IEnumerator <LocalScopeHandle> scopes, SymbolMethod owner)
        {
            while (true)
            {
                scopes.MoveNext();

                if (scopes.Current.IsNil)
                {
                    break;
                }

                var currentScope = pdb.GetLocalScope(scopes.Current);

                var current = new SymbolScope(owner, null, currentScope.StartOffset, currentScope.EndOffset);

                AddLocalVars(pdb, current, currentScope.GetLocalVariables());

                AddChildScopes(pdb, current, currentScope.GetChildren(), owner);

                parent.AddChild(current);
            }
        }