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); }
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); }