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; }
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; } }
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; } }
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); }