ThreadInfo GetThread(CorThread thread) { ThreadInfo info; lock (threads) { if (!threads.TryGetValue(thread.Id, out info)) { string loc = string.Empty; try { if (thread.ActiveFrame != null) { StackFrame frame = CorBacktrace.CreateFrame(this, thread.ActiveFrame); loc = frame.ToString(); } else { loc = "<Unknown>"; } } catch { loc = "<Unknown>"; } info = new ThreadInfo(thread.Process.Id, thread.Id, GetThreadName(thread), loc); threads[thread.Id] = info; } return(info); } }
internal CorEvaluationContext (CorDebuggerSession session, CorBacktrace backtrace, int index, DC.EvaluationOptions ops): base (ops) { Session = session; base.Adapter = session.ObjectAdapter; frameIndex = index; this.backtrace = backtrace; evalTimestamp = CorDebuggerSession.EvaluationTimestamp; Evaluator = session.GetEvaluator (CorBacktrace.CreateFrame (session, Frame)); }
internal CorEvaluationContext(CorDebuggerSession session, CorBacktrace backtrace, int index, DC.EvaluationOptions ops) : base(ops) { Session = session; base.Adapter = session.ObjectAdapter; frameIndex = index; this.backtrace = backtrace; evalTimestamp = CorDebuggerSession.EvaluationTimestamp; Evaluator = session.GetEvaluator(CorBacktrace.CreateFrame(session, Frame)); }