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); }
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); }
/// <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); }
public MonoMemoryContext(MonoDocumentContext doc, uint address) { _document = doc; _address = address; }
public MonoBreakpointResolution(uint address, MonoDocumentContext doc) { _address = address; _document = doc; }