示例#1
0
 public void RemoveBreakPoint(BreakPoint bp)
 {
     _allBreakPoints.Remove(bp);
     PrepareBreakPoints();
     OnSettingsChanged();
     WriteLine("Removed {0}", bp);
 }
示例#2
0
 public void EnableBreakPoint(BreakPoint bp, bool enable)
 {
     bp.Enabled = enable;
     PrepareBreakPoints();
     OnSettingsChanged();
     WriteLine("{0} - {1}", enable ? "Enabled" : "Disabled", bp.ToString());
 }
示例#3
0
        public void AddBreakPoint(BreakPoint bp)
        {
            if (_editingBreakPoint != null)
            {
                // Copy state (number, condition, trip count etc...)
                bp.CopyState(_editingBreakPoint);

                // Replace it
                var index = _allBreakPoints.IndexOf(_editingBreakPoint);
                _allBreakPoints[index] = bp;

                PrepareBreakPoints();

                // Save
                OnSettingsChanged();
                WriteLine("Edited {0}", bp);
                return;
            }

            if (_allBreakPoints.Count > 0)
            {
                bp.Number = _allBreakPoints.Max(x => x.Number) + 1;
            }
            else
            {
                bp.Number = 1;
            }

            BreakPoints.Add(bp);

            PrepareBreakPoints();
            OnSettingsChanged();

            WriteLine("Added {0}", bp.ToString());
        }
示例#4
0
 public virtual void CopyState(BreakPoint other)
 {
     Number    = other.Number;
     Enabled   = other.Enabled;
     TripCount = other.TripCount;
     MatchConditionExpression = other.MatchConditionExpression;
     BreakConditionExpression = other.BreakConditionExpression;
 }
示例#5
0
 public void bp_reset(DebuggerCore debugger, BreakPoint bp = null)
 {
     if (bp != null)
     {
         bp.TripCount = 0;
         debugger.WriteLine(bp.ToString());
     }
     else
     {
         foreach (var x in debugger.BreakPoints)
         {
             x.TripCount = 0;
         }
         bp_list(debugger);
     }
 }
示例#6
0
 public void bp_edit(DebuggerCore debugger, BreakPoint bp, [ArgTail] string argtail = null)
 {
     if (string.IsNullOrWhiteSpace(argtail))
     {
         debugger.PromptConsole(string.Format("bp edit {0} {1}", bp.Number, bp.EditString));
     }
     else
     {
         try
         {
             debugger.EditBreakPoint(bp);
             debugger.CommandDispatcher.ExecuteCommand("bp " + argtail);
         }
         finally
         {
             debugger.EditBreakPoint(null);
         }
     }
 }
示例#7
0
 public void SetBreakPointBreakCondition(BreakPoint bp, Expression condition)
 {
     bp.BreakConditionExpression = condition;
     OnSettingsChanged();
     WriteLine(bp.ToString());
 }
示例#8
0
 public void EditBreakPoint(BreakPoint bp)
 {
     _editingBreakPoint = bp;
 }
示例#9
0
 public void BreakAtTemp(BreakPoint bp)
 {
     _tempBreakPoint = bp;
 }
示例#10
0
 public DebuggerCore()
 {
     BreakPoint.RegisterJson();
     CommandDispatcher = new CommandDispatcher(this);
 }
示例#11
0
 public void bp_off(DebuggerCore debugger, BreakPoint bp)
 {
     debugger.EnableBreakPoint(bp, false);
 }
示例#12
0
 public void bp_on(DebuggerCore debugger, BreakPoint bp)
 {
     debugger.EnableBreakPoint(bp, true);
 }
示例#13
0
 public void bp_del(DebuggerCore debugger, BreakPoint bp)
 {
     debugger.RemoveBreakPoint(bp);
 }
示例#14
0
 public void bp_break(DebuggerCore debugger, BreakPoint bp, Expression expr = null)
 {
     debugger.SetBreakPointBreakCondition(bp, expr);
 }