コード例 #1
0
        public bool Exec(Hooker hooker, Thread th)
        {
            GetFrameInfoRes res = new GetFrameInfoRes();

            th.FillFrameInfo(res, m_stack_idx);
            hooker.SendResponse(res);
            return(false);
        }
コード例 #2
0
        public bool Exec(Hooker hooker, Thread th)
        {
            var          frames = th.GetBackTraceInfo();
            BackTraceRes res    = new BackTraceRes();

            res.m_frames = frames;
            hooker.SendResponse(res);
            return(false);
        }
コード例 #3
0
        public string m_file = "";// for reset
        public bool Exec(Hooker hooker, Thread th)
        {
            BreakOpRes res = new BreakOpRes();

            if (m_cmd_mode == BreakCmdMode.Set)
            {
                for (int i = 0; i < m_break_points.Count; ++i)
                {
                    hooker.AddBreakPoint(m_break_points[i]);
                }
                res.m_head_desc    = "Add BreakPoint:";
                res.m_break_points = m_break_points;
            }
            else if (m_cmd_mode == BreakCmdMode.ResetOneFile)
            {
                hooker.ResetBreakPointForOneFile(m_file, m_break_points);
                res.m_head_desc    = "Reset BreakPoint:";
                res.m_break_points = m_break_points;
            }
            else if (m_cmd_mode == BreakCmdMode.Delete)
            {
                res.m_head_desc = "Remove BreakPoint:";
                for (int i = 0; i < m_break_points.Count; ++i)
                {
                    var point = hooker.RemoveBreakPointByIndex(m_break_points[i].index);
                    if (point != null)
                    {
                        res.m_break_points.Add(m_break_points[i]);
                    }
                }
            }
            else if (m_cmd_mode == BreakCmdMode.DeleteAll)
            {
                hooker.ClearBreakPoint();
                res.m_head_desc = "Clear BreakPoint";
            }
            else if (m_cmd_mode == BreakCmdMode.List)
            {
                res.m_break_points.AddRange(hooker.GetBreakPoint());
                res.m_head_desc = "List BreakPoint (" + res.m_break_points.Count + "):";
            }
            hooker.SendResponse(res);

            return(false);
        }
コード例 #4
0
 public bool Exec(Hooker hooker, Thread th)
 {
     hooker.SetBreakMode(BreakMode.Ignore);
     hooker.SetPipeServer(null);
     return(true);
 }
コード例 #5
0
 public bool Exec(Hooker hooker, Thread th)
 {
     hooker.SetBreakMode(BreakMode.StepOut);
     return(true);
 }