示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
 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;
 }