public Variable Evaluate(StackFrame frame, string expression)
 {
     try
     {
         return(_debugger.Instance.Evaluate(frame.ThreadId, frame.Index, expression));
     }
     catch (FaultException e)
     {
         throw new Exception(e.Message);
     }
 }
        public virtual StackFrame[] GetStackFrames(int threadId)
        {
            var machine = _threadManager.GetTokenForThread(threadId).Machine;
            var frames  = machine.GetExecutionFrames();
            var result  = new StackFrame[frames.Count];
            int index   = 0;

            foreach (var frameInfo in frames)
            {
                var frame = new StackFrame();
                frame.LineNumber    = frameInfo.LineNumber;
                frame.Index         = index++;
                frame.MethodName    = frameInfo.MethodName;
                frame.Source        = frameInfo.Source;
                result[frame.Index] = frame;
            }
            return(result);
        }