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); }
/// <summary> /// Enumerates the code contexts for a given position in a source file. /// </summary> /// <param name="pDocPos"></param> /// <param name="ppEnum"></param> /// <returns>If successful, returns S_OK; otherwise, returns an error code.</returns> public int EnumCodeContexts(IDebugDocumentPosition2 pDocPos, out IEnumDebugCodeContexts2 ppEnum) { TEXT_POSITION[] startPosition; TEXT_POSITION[] endPosition; var documentName = GetLocationInfo(pDocPos, out startPosition, out endPosition); var textPosition = new TEXT_POSITION { dwLine = startPosition[0].dwLine + 1 }; var documentContext = new MonoDocumentContext(documentName, textPosition, textPosition, null); ppEnum = new MonoCodeContextEnumerator(new IDebugCodeContext2[] { new MonoMemoryAddress(this, 0, documentContext) }); return(S_OK); }
/// <summary> /// Retrieves a list of all code contexts associated with this document context. /// </summary> /// <param name="ppEnumCodeCxts">The enumerator.</param> /// <returns>If successful, returns S_OK; otherwise, returns an error code.</returns> public int EnumCodeContexts(out IEnumDebugCodeContexts2 ppEnumCodeCxts) { ppEnumCodeCxts = null; try { var codeContexts = new IDebugCodeContext2[1]; codeContexts[0] = _address; ppEnumCodeCxts = new MonoCodeContextEnumerator(codeContexts); return(S_OK); } catch (ComponentException e) { return(e.HResult); } catch (Exception e) { return(EngineUtils.UnexpectedException(e)); } }
public int EnumCodeContexts(out IEnumDebugCodeContexts2 ppEnumCodeCxts) { ppEnumCodeCxts = new MonoCodeContextEnumerator(new IDebugCodeContext2[] { _memory }); return(S_OK); }