コード例 #1
0
        /// <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);
        }
コード例 #2
0
 /// <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);
 }
コード例 #3
0
        /// <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;
                }
            }
        }
コード例 #4
0
        /// <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;
                }
            }
        }