コード例 #1
0
        public int EnumCodeContexts(IDebugDocumentPosition2 pDocPos, out IEnumDebugCodeContexts2 ppEnum)
        {
            TextPositionInfo posInfo = new TextPositionInfo(pDocPos);

            MonoDocumentContext docCtx    = new MonoDocumentContext(posInfo, null);
            MonoMemoryContext   memoryCtx = new MonoMemoryContext(docCtx, 0);

            ppEnum = new MonoCodeContextEnumerator(new IDebugCodeContext2[] { memoryCtx });

            return(S_OK);
        }
コード例 #2
0
        public int GetDocumentContext(out IDebugDocumentContext2 ppCxt)
        {
            if (_monoStackFrame.HasDebugInfo)
            {
                ppCxt = new MonoDocumentContext(new TextPositionInfo(
                                                    _monoStackFrame.SourceLocation.FileName,
                                                    _monoStackFrame.SourceLocation.Line - 1,
                                                    _monoStackFrame.SourceLocation.Column - 1), null);

                return(S_OK);
            }

            ppCxt = null;
            return(S_FALSE);
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public int Bind()
        {
            _position = new TextPositionInfo(_requestInfo);
            _position.FixPosition();

            _monoBreakpoint = _engine.BreakpointManager.CreateBreakpoint(_position, this);
            SetCondition(_requestInfo.bpCondition);
            SetPassCount(_requestInfo.bpPassCount);

            if (!_enabled)
            {
                _monoBreakpoint.Enabled = true;
                _enabled = true;
            }

            MonoDocumentContext docCtx = new MonoDocumentContext(_position, new Debugging.MonoMemoryContext(null, 0));

            _boundBreakpoint = new MonoBoundBreakpoint(this, new MonoBreakpointResolution(0, docCtx));

            _engine.Callback.OnBreakpointBound(this);

            return(S_OK);
        }
コード例 #4
0
 public MonoMemoryContext(MonoDocumentContext doc, uint address)
 {
     _document = doc;
     _address  = address;
 }
コード例 #5
0
 public MonoBreakpointResolution(uint address, MonoDocumentContext doc)
 {
     _address  = address;
     _document = doc;
 }