internal List <BoundBreakpoint> BindAddresses(ResultValue bkpt) { List <BoundBreakpoint> resultList = new List <BoundBreakpoint>(); if (bkpt == null) { return(resultList); } BoundBreakpoint bbp = null; if (bkpt is ValueListValue) { var list = (ValueListValue)bkpt; for (int i = 1; i < list.Content.Length; ++i) { bbp = GetBoundBreakpoint(list.Content[i] as TupleValue); if (bbp != null) { resultList.Add(bbp); } } } else { _breakState = StringToBreakpointState(bkpt.FindString("addr")); bbp = GetBoundBreakpoint(bkpt as TupleValue); if (bbp != null) { resultList.Add(bbp); } } return(resultList); }
private DebuggedThread SetThreadInfoFromResultValue(ResultValue resVal, out bool isNewThread) { isNewThread = false; int threadId = resVal.FindInt("id"); string targetId = resVal.TryFindString("target-id"); DebuggedThread thread = FindThread(threadId, out isNewThread); thread.Alive = true; // Only update targetId if it is a new thread. if (isNewThread && !String.IsNullOrEmpty(targetId)) { uint tid = 0; if (TryGetTidFromTargetId(targetId, out tid)) { thread.TargetId = tid; } } if (resVal.Contains("name")) { thread.Name = resVal.FindString("name"); } return(thread); }
internal List<BoundBreakpoint> BindAddresses(ResultValue bkpt) { List<BoundBreakpoint> resultList = new List<BoundBreakpoint>(); if (bkpt == null) { return resultList; } BoundBreakpoint bbp = null; if (bkpt is ValueListValue) { var list = (ValueListValue)bkpt; for (int i = 1; i < list.Content.Length; ++i) { bbp = GetBoundBreakpoint(list.Content[i] as TupleValue); if (bbp != null) resultList.Add(bbp); } } else { _breakState = StringToBreakpointState(bkpt.FindString("addr")); bbp = GetBoundBreakpoint(bkpt as TupleValue); if (bbp != null) resultList.Add(bbp); } return resultList; }