Example #1
0
        public AD7MemoryAddress(AD7Engine engine, string filename, uint lineno, PythonStackFrame frame = null) {
            _engine = engine;
            _lineNo = (uint)lineno;
            _filename = filename;

            var pos = new TEXT_POSITION { dwLine = lineno, dwColumn = 0 };
            _documentContext = new AD7DocumentContext(filename, pos, pos, this, frame != null ? frame.Kind : FrameKind.None);
        }
Example #2
0
        public AD7StackFrame(AD7Engine engine, AD7Thread thread, PythonStackFrame threadContext) {
            _engine = engine;
            _thread = thread;
            _stackFrame = threadContext;

            _parameters = threadContext.Parameters.ToArray();
            _locals = threadContext.Locals.ToArray();
        }
Example #3
0
 public AD7BoundBreakpoint(AD7Engine engine, PythonBreakpoint address, AD7PendingBreakpoint pendingBreakpoint, AD7BreakpointResolution breakpointResolution, bool enabled) {
     _engine = engine;
     _breakpoint = address;
     _pendingBreakpoint = pendingBreakpoint;
     _breakpointResolution = breakpointResolution;
     _enabled = enabled;
     _deleted = false;
 }
Example #4
0
        public AD7MemoryAddress(AD7Engine engine, string filename, uint lineno, PythonStackFrame frame = null)
        {
            _engine   = engine;
            _lineNo   = (uint)lineno;
            _filename = filename;

            var pos = new TEXT_POSITION {
                dwLine = lineno, dwColumn = 0
            };

            _documentContext = new AD7DocumentContext(filename, pos, pos, this, frame != null ? frame.Kind : FrameKind.None);
        }
Example #5
0
        public AD7PendingBreakpoint(IDebugBreakpointRequest2 pBPRequest, AD7Engine engine, BreakpointManager bpManager) {
            _bpRequest = pBPRequest;
            BP_REQUEST_INFO[] requestInfo = new BP_REQUEST_INFO[1];
            EngineUtils.CheckOk(_bpRequest.GetRequestInfo(enum_BPREQI_FIELDS.BPREQI_BPLOCATION | enum_BPREQI_FIELDS.BPREQI_CONDITION | enum_BPREQI_FIELDS.BPREQI_ALLFIELDS, requestInfo));
            _bpRequestInfo = requestInfo[0];            
            
            _engine = engine;
            _bpManager = bpManager;
            _boundBreakpoints = new System.Collections.Generic.List<AD7BoundBreakpoint>();

            _enabled = true;
            _deleted = false;
        }
Example #6
0
        public AD7PendingBreakpoint(IDebugBreakpointRequest2 pBPRequest, AD7Engine engine, BreakpointManager bpManager)
        {
            _bpRequest = pBPRequest;
            BP_REQUEST_INFO[] requestInfo = new BP_REQUEST_INFO[1];
            EngineUtils.CheckOk(_bpRequest.GetRequestInfo(enum_BPREQI_FIELDS.BPREQI_BPLOCATION | enum_BPREQI_FIELDS.BPREQI_CONDITION | enum_BPREQI_FIELDS.BPREQI_ALLFIELDS, requestInfo));
            _bpRequestInfo = requestInfo[0];

            _engine           = engine;
            _bpManager        = bpManager;
            _boundBreakpoints = new System.Collections.Generic.List <AD7BoundBreakpoint>();

            _enabled = true;
            _deleted = false;
        }
Example #7
0
        public AD7MemoryAddress(AD7Engine engine, string filename, uint lineno, PythonStackFrame frame = null)
        {
            _engine   = engine;
            _lineNo   = (uint)lineno;
            _filename = filename;
            _frame    = frame;

            var span     = _engine.Process.GetStatementSpan(_filename, (int)_lineNo + 1, 0);
            var startPos = new TEXT_POSITION {
                dwLine = (uint)(span.Start.Line - 1), dwColumn = (uint)(span.Start.Column - 1)
            };
            var endPos = new TEXT_POSITION {
                dwLine = (uint)(span.End.Line - 1), dwColumn = (uint)(span.End.Column - 1)
            };

            _documentContext = new AD7DocumentContext(filename, startPos, endPos, this, frame != null ? frame.Kind : FrameKind.None);
        }
Example #8
0
 public AD7EngineEventArgs(AD7Engine engine) {
     _engine = engine;
 }
Example #9
0
 public BreakpointManager(AD7Engine engine) {
     m_engine = engine;
     m_pendingBreakpoints = new System.Collections.Generic.List<AD7PendingBreakpoint>();
 }
Example #10
0
 public AD7MemoryAddress(AD7Engine engine, string filename, uint lineno, PythonStackFrame frame)
     : this(engine, filename, lineno)
 {
     _frame = frame;
 }
Example #11
0
        internal static void Send(AD7Engine engine)
        {
            AD7ProgramCreateEvent eventObject = new AD7ProgramCreateEvent();

            engine.Send(eventObject, IID, null);
        }
Example #12
0
 AD7EngineCreateEvent(AD7Engine engine)
 {
     m_engine = engine;
 }
Example #13
0
 AD7EngineCreateEvent(AD7Engine engine) {
     m_engine = engine;
 }
Example #14
0
 internal static void Send(AD7Engine engine) {
     var eventObject = new AD7LoadCompleteEvent();
     engine.Send(eventObject, IID, null);
 }
Example #15
0
        internal static void Send(AD7Engine engine)
        {
            var eventObject = new AD7LoadCompleteEvent();

            engine.Send(eventObject, IID, null);
        }
Example #16
0
 public AD7Thread(AD7Engine engine, PythonThread debuggedThread)
 {
     _engine         = engine;
     _debuggedThread = debuggedThread;
 }
Example #17
0
 public AD7BreakpointResolution(AD7Engine engine, PythonBreakpoint address, AD7DocumentContext documentContext) {
     m_engine = engine;
     m_address = address;
     m_documentContext = documentContext;
 }
Example #18
0
        // Compares the memory context to each context in the given array in the manner indicated by compare flags,
        // returning an index of the first context that matches.
        public int Compare(enum_CONTEXT_COMPARE uContextCompare, IDebugMemoryContext2[] compareToItems, uint compareToLength, out uint foundIndex)
        {
            foundIndex = uint.MaxValue;

            enum_CONTEXT_COMPARE contextCompare = (enum_CONTEXT_COMPARE)uContextCompare;

            for (uint c = 0; c < compareToLength; c++)
            {
                AD7MemoryAddress compareTo = compareToItems[c] as AD7MemoryAddress;
                if (compareTo == null)
                {
                    continue;
                }

                if (!AD7Engine.ReferenceEquals(this._engine, compareTo._engine))
                {
                    continue;
                }

                bool result;

                switch (contextCompare)
                {
                case enum_CONTEXT_COMPARE.CONTEXT_EQUAL:
                    result = (this._lineNo == compareTo._lineNo);
                    break;

                case enum_CONTEXT_COMPARE.CONTEXT_LESS_THAN:
                    result = (this._lineNo < compareTo._lineNo);
                    break;

                case enum_CONTEXT_COMPARE.CONTEXT_GREATER_THAN:
                    result = (this._lineNo > compareTo._lineNo);
                    break;

                case enum_CONTEXT_COMPARE.CONTEXT_LESS_THAN_OR_EQUAL:
                    result = (this._lineNo <= compareTo._lineNo);
                    break;

                case enum_CONTEXT_COMPARE.CONTEXT_GREATER_THAN_OR_EQUAL:
                    result = (this._lineNo >= compareTo._lineNo);
                    break;

                case enum_CONTEXT_COMPARE.CONTEXT_SAME_SCOPE:
                case enum_CONTEXT_COMPARE.CONTEXT_SAME_FUNCTION:
                    if (_frame != null)
                    {
                        result = compareTo._filename == _filename && (compareTo._lineNo + 1) >= _frame.StartLine && (compareTo._lineNo + 1) <= _frame.EndLine;
                    }
                    else if (compareTo._frame != null)
                    {
                        result = compareTo._filename == _filename && (_lineNo + 1) >= compareTo._frame.StartLine && (compareTo._lineNo + 1) <= compareTo._frame.EndLine;
                    }
                    else
                    {
                        result = this._lineNo == compareTo._lineNo && this._filename == compareTo._filename;
                    }
                    break;

                case enum_CONTEXT_COMPARE.CONTEXT_SAME_MODULE:
                    result = _filename == compareTo._filename;
                    break;

                case enum_CONTEXT_COMPARE.CONTEXT_SAME_PROCESS:
                    result = true;
                    break;

                default:
                    // A new comparison was invented that we don't support
                    return(VSConstants.E_NOTIMPL);
                }

                if (result)
                {
                    foundIndex = c;
                    return(VSConstants.S_OK);
                }
            }

            return(VSConstants.S_FALSE);
        }
Example #19
0
        internal static void Send(AD7Engine engine, IDebugThread2 thread)
        {
            var eventObject = new AD7LoadCompleteEvent(thread);

            engine.Send(eventObject, IID, thread);
        }
Example #20
0
 public static void Send(AD7Engine engine) {
     AD7EngineCreateEvent eventObject = new AD7EngineCreateEvent(engine);
     engine.Send(eventObject, IID, null, null);
 }
Example #21
0
        public static void Send(AD7Engine engine)
        {
            AD7EngineCreateEvent eventObject = new AD7EngineCreateEvent(engine);

            engine.Send(eventObject, IID, null, null);
        }
Example #22
0
 internal static void Send(AD7Engine engine) {
     AD7ProgramCreateEvent eventObject = new AD7ProgramCreateEvent();
     engine.Send(eventObject, IID, null);
 }
 public AD7Thread(AD7Engine engine, PythonThread debuggedThread)
 {
     _engine         = engine;
     _debuggedThread = debuggedThread;
     _vsTid          = engine.RegisterThreadId(debuggedThread.Id);
 }
Example #24
0
 public AD7DebugExceptionEvent(AD7Engine engine, PythonException exception)
 {
     _engine    = engine;
     _exception = exception;
 }
Example #25
0
 public AD7BreakpointResolution(AD7Engine engine, PythonBreakpoint address, AD7DocumentContext documentContext)
 {
     m_engine          = engine;
     m_address         = address;
     m_documentContext = documentContext;
 }
Example #26
0
 public AD7DebugExceptionEvent(AD7Engine engine, PythonException exception) {
     _engine = engine;
     _exception = exception;
 }
Example #27
0
 public BreakpointManager(AD7Engine engine)
 {
     m_engine             = engine;
     m_pendingBreakpoints = new System.Collections.Generic.List <AD7PendingBreakpoint>();
 }
Example #28
0
 public AD7Thread(AD7Engine engine, PythonThread debuggedThread) {
     _engine = engine;
     _debuggedThread = debuggedThread;
     _vsTid = engine.RegisterThreadId(debuggedThread.Id);
 }
Example #29
0
 public AD7EngineEventArgs(AD7Engine engine)
 {
     _engine = engine;
 }
Example #30
0
 public AD7MemoryAddress(AD7Engine engine, string filename, uint lineno)
 {
     _engine   = engine;
     _lineNo   = (uint)lineno;
     _filename = filename;
 }