示例#1
0
 public MonoExpression(MonoEngine engine, MonoThread thread, string expression, ObjectValue value)
 {
     this.engine = engine;
     this.thread = thread;
     this.value  = value;
     Expression  = expression;
 }
示例#2
0
        public MonoStackFrame(MonoEngine engine, MonoThread thread, StackFrame frame)
        {
            this.engine = engine;
            this.thread = thread;
            this.frame  = frame;

            var allLocals = frame.GetAllLocals(EvaluationOptions.DefaultOptions);

            parameters   = frame.GetParameters(EvaluationOptions.DefaultOptions);
            locals       = allLocals.Where(x => !parameters.Any(y => y.Name == x.Name)).ToArray();
            lineNumber   = (uint)frame.SourceLocation.Line;
            hasSource    = frame.HasDebugInfo;
            functionName = frame.SourceLocation.MethodName;
            documentName = frame.SourceLocation.FileName;
        }
        int IDebugProgram2.EnumThreads(out IEnumDebugThreads2 ppEnum)
        {
            var threads = threadManager.All.ToArray();

            var threadObjects = new MonoThread[threads.Length];

            for (int i = 0; i < threads.Length; i++)
            {
                threadObjects[i] = threads[i];
            }

            ppEnum = new MonoThreadEnum(threadObjects);

            return(VSConstants.S_OK);
        }
示例#4
0
 public void Add(ThreadInfo thread, MonoThread monoThread)
 {
     threads[thread.Id] = monoThread;
 }
示例#5
0
 // Gets the thread associated with a stack frame.
 int IDebugStackFrame2.GetThread(out IDebugThread2 thread)
 {
     thread = this.thread;
     return(VSConstants.S_OK);
 }