/// <summary> /// Adds a line breakpoint definition for the specified project item and line. /// </summary> /// <param name="item">The project item.</param> /// <param name="line">The code line.</param> public virtual void AddLineBreakpoint(ProjectItem item, int line) { var b = new LineBreakpointDefinition(this) { ProjectItem = item, Line = line }; AddBreakpoint(b); }
/// <summary> /// Adds a line breakpoint definition for the specified project item and line. /// </summary> /// <param name="item">The project item.</param> /// <param name="line">The code line.</param> public virtual void AddLineBreakpoint(ProjectItem item, int line) { var b = new LineBreakpointDefinition(this) { ProjectItem = item, Line = line }; AddBreakpoint(b); }
/// <summary> /// Sets the specified memento object. /// </summary> /// <param name="memento">The memento to set.</param> public void SetMemento(BreakpointMemento memento) { // Clear all breakpoints. Breakpoints.Clear(); var pl = DebuggerController.Platform; foreach (var item in pl.Project.Items) { var ed = pl.Editors.GetEditorFormIfExists(item); if (ed != null) { ed.ClearBreakpoints(); } } // Add breakpoints from memento. foreach (var bp in memento.Breakpoints) { switch (bp.Type) { case BreakpointMemento.BreakpointType.Line: var b = new LineBreakpointDefinition(this); b.Line = bp.Line; foreach (var item in pl.Project.Items) { if (item.Filename == bp.File) { b.ProjectItem = item; Breakpoints.Add(b); var ed = pl.Editors.GetEditorFormIfExists(item); if (ed != null) { ed.ToggleBreakpointAt(bp.Line); } // If the editor does not exist yet, breakpoints // will be added on creation. break; } } break; case BreakpointMemento.BreakpointType.Memory: Breakpoints.Add(new MemoryBreakpointDefinition(this) { Address = bp.Address, Count = bp.Count, OnRead = bp.Read, OnWrite = bp.Write, OnExecute = bp.Execute }); break; case BreakpointMemento.BreakpointType.Register: Breakpoints.Add(new RegisterBreakpointDefinition(this) { Name = bp.Name, OnRead = bp.Read, OnWrite = bp.Write }); break; case BreakpointMemento.BreakpointType.IO: Breakpoints.Add(new IOBreakpointDefinition(this) { Address = bp.Address, Input = bp.Input, Output = bp.Output }); break; } } }
/// <summary> /// Sets the specified memento object. /// </summary> /// <param name="memento">The memento to set.</param> public void SetMemento(BreakpointMemento memento) { // Clear all breakpoints. Breakpoints.Clear(); var pl = DebuggerController.Platform; foreach (var item in pl.Project.Items) { var ed = pl.Editors.GetEditorFormIfExists(item); if (ed != null) { ed.ClearBreakpoints(); } } // Add breakpoints from memento. foreach (var bp in memento.Breakpoints) { switch (bp.Type) { case BreakpointMemento.BreakpointType.Line: var b = new LineBreakpointDefinition(this); b.Line = bp.Line; foreach (var item in pl.Project.Items) { if (item.Filename == bp.File) { b.ProjectItem = item; Breakpoints.Add(b); var ed = pl.Editors.GetEditorFormIfExists(item); if (ed != null) { ed.ToggleBreakpointAt(bp.Line); } // If the editor does not exist yet, breakpoints // will be added on creation. break; } } break; case BreakpointMemento.BreakpointType.Memory: Breakpoints.Add(new MemoryBreakpointDefinition(this) { Address = bp.Address, Count = bp.Count, OnRead = bp.Read, OnWrite = bp.Write, OnExecute = bp.Execute }); break; case BreakpointMemento.BreakpointType.Register: Breakpoints.Add(new RegisterBreakpointDefinition(this) { Name = bp.Name, OnRead = bp.Read, OnWrite = bp.Write }); break; case BreakpointMemento.BreakpointType.IO: Breakpoints.Add(new IOBreakpointDefinition(this) { Address = bp.Address, Input = bp.Input, Output = bp.Output }); break; } } }