private ThreadContext CreateContext(TupleValue frame) { ulong?pc = frame.TryFindAddr("addr"); // don't report source line info for modules marked as IgnoreSource bool ignoreSource = false; if (pc != null) { var module = _debugger.FindModule(pc.Value); if (module != null && module.IgnoreSource) { ignoreSource = true; } } MITextPosition textPosition = !ignoreSource?MITextPosition.TryParse(this._debugger, frame) : null; string func = frame.TryFindString("func"); uint level = frame.FindUint("level"); string from = frame.TryFindString("from"); return(new ThreadContext(pc, textPosition, func, level, from)); }