Esempio n. 1
0
		public ValueContext(ILocalsOwner localsOwner, CorFrame frame, DnThread thread) {
			this.LocalsOwner = localsOwner;
			this.Thread = thread;
			this.Process = thread.Process;

			// Read everything immediately since the frame will be neutered when Continue() is called
			this.FrameCouldBeNeutered = frame;
			frame.GetTypeAndMethodGenericParameters(out genericTypeArguments, out genericMethodArguments);
			this.Function = frame.Function;
		}
Esempio n. 2
0
		public ValueContext(ILocalsOwner localsOwner, CorFrame frame, DnThread thread, DnProcess process) {
			this.LocalsOwner = localsOwner;
			this.Thread = thread;
			this.Process = process;
			Debug.Assert(thread == null || thread.Process == process);

			// Read everything immediately since the frame will be neutered when Continue() is called
			this.FrameCouldBeNeutered = frame;
			if (frame == null) {
				genericTypeArguments = genericMethodArguments = new List<CorType>();
				this.Function = null;
			}
			else {
				frame.GetTypeAndMethodGenericParameters(out genericTypeArguments, out genericMethodArguments);
				this.Function = frame.Function;
			}
		}
Esempio n. 3
0
        public ValueContext(ILocalsOwner localsOwner, CorFrame frame, DnThread thread, DnProcess process)
        {
            this.LocalsOwner = localsOwner;
            this.Thread      = thread;
            this.Process     = process;
            Debug.Assert(thread == null || thread.Process == process);

            // Read everything immediately since the frame will be neutered when Continue() is called
            this.FrameCouldBeNeutered = frame;
            if (frame == null)
            {
                genericTypeArguments = genericMethodArguments = new List <CorType>();
                this.Function        = null;
            }
            else
            {
                frame.GetTypeAndMethodGenericParameters(out genericTypeArguments, out genericMethodArguments);
                this.Function = frame.Function;
            }
        }
Esempio n. 4
0
        public bool GetGenericArguments(out List <IDebuggerType> typeGenArgs, out List <IDebuggerType> methGenArgs)
        {
            List <IDebuggerType> typeGenArgsTmp = null, methGenArgsTmp = null;
            bool res = debugger.Dispatcher.UI(() => {
                List <CorType> corTypeGenArgs, corMethGenArgs;
                var res2       = frame.GetTypeAndMethodGenericParameters(out corTypeGenArgs, out corMethGenArgs);
                typeGenArgsTmp = new List <IDebuggerType>(corTypeGenArgs.Count);
                methGenArgsTmp = new List <IDebuggerType>(corMethGenArgs.Count);
                foreach (var t in corTypeGenArgs)
                {
                    typeGenArgsTmp.Add(new DebuggerType(debugger, t));
                }
                foreach (var t in corMethGenArgs)
                {
                    methGenArgsTmp.Add(new DebuggerType(debugger, t));
                }
                return(res2);
            });

            typeGenArgs = typeGenArgsTmp;
            methGenArgs = methGenArgsTmp;
            return(res);
        }