private MsgBreakpoint BreakpointToMsg(Breakpoint breakpoint)
        {
            var msgBp = new MsgBreakpoint();

            if (breakpoint.LineInfo.Node != null)
            {
                msgBp.NodeId = breakpoint.LineInfo.Node.Id;
            }
            else
            {
                msgBp.GoalId = breakpoint.LineInfo.Goal.Id;
            }

            msgBp.IsInitAction = breakpoint.LineInfo.Type == LineType.GoalInitActionLine;
            if (breakpoint.LineInfo.Type == LineType.GoalInitActionLine ||
                breakpoint.LineInfo.Type == LineType.GoalExitActionLine ||
                breakpoint.LineInfo.Type == LineType.RuleActionLine)
            {
                msgBp.ActionIndex = (Int32)breakpoint.LineInfo.ActionIndex;
            }
            else
            {
                msgBp.ActionIndex = -1;
            }

            msgBp.BreakpointMask = 0x3f; // TODO const
            return(msgBp);
        }
Example #2
0
        public void SendSetBreakpoints(IEnumerable <BreakpointInfo> breakpoints)
        {
            var setBps = new DbgSetBreakpoints();

            foreach (var breakpoint in breakpoints)
            {
                var bp = new MsgBreakpoint
                {
                    Path = breakpoint.Path,
                    Line = breakpoint.Line
                };
                setBps.Breakpoint.Add(bp);
            }

            var msg = new DebuggerToBackend
            {
                SetBreakpoints = setBps
            };

            Send(msg);
        }