Exemple #1
0
        public void EnableBreakpoint(string file, int line)
        {
            BreakpointDetails bkpt = FindBreakpoint(file, line);

            if (bkpt == null)
            {
                bkpt = new BreakpointDetails(file, line, true);
                mBreakpoints.Add(bkpt);
            }
            else if (!bkpt.Enabled)
            {
                bkpt.Enabled = true;
            }
            else
            {
                return;
            }

            if (mConnectedTarget != null)
            {
                bkpt.TargetState = BreakpointState.PendingAdd;
                mConnectedTarget.AddBreakpoint(file, line, bkpt.ID);
            }

            OnBreakpointChanged(bkpt, true);
        }
        void Debugger_BreakpointChanged(DebugManager sender, BreakpointDetails bkpt, bool valid)
        {
            ListViewItem item = FindBreakpoint(bkpt.FileName, bkpt.Line);

            mUpdating = true;
            if (item == null && valid)
            {
                item = new ListViewItem(bkpt.FileName);
                item.SubItems.Add(bkpt.Line.ToString());
                item.SubItems.Add(bkpt.TargetState.ToString());
                item.ImageIndex = 0;
                item.Checked    = bkpt.Enabled;
                item.Tag        = bkpt;
                breakpointListView.Items.Add(item);
            }
            else if (item != null && valid)
            {
                item.Checked          = bkpt.Enabled;
                item.SubItems[2].Text = bkpt.TargetState.ToString();
            }
            else if (item != null && !valid)
            {
                breakpointListView.Items.Remove(item);
            }
            mUpdating = false;
        }
Exemple #3
0
 void Debugger_BreakpointChanged(DebugManager sender, BreakpointDetails bkpt, bool valid)
 {
     if (PathUtils.Compare(Document.FileName, bkpt.FileName) == 0)
     {
         SetBreakpoint(bkpt.Line, valid);
     }
 }
Exemple #4
0
 void OnBreakpointChanged(BreakpointDetails bkpt, bool valid)
 {
     if (BreakpointChanged != null)
     {
         BreakpointChanged(this, bkpt, valid);
     }
 }
		void Debugger_BreakpointChanged(DebugManager sender, BreakpointDetails bkpt, bool valid)
		{
			ListViewItem item = FindBreakpoint(bkpt.FileName, bkpt.Line);

			mUpdating = true;
			if(item == null && valid)
			{
				item = new ListViewItem(bkpt.FileName);
				item.SubItems.Add(bkpt.Line.ToString());
				item.SubItems.Add(bkpt.TargetState.ToString());
				item.ImageIndex = 0;
				item.Checked = bkpt.Enabled;
				item.Tag = bkpt;
				breakpointListView.Items.Add(item);
			}
			else if(item != null && valid)
			{
				item.Checked = bkpt.Enabled;
				item.SubItems[2].Text = bkpt.TargetState.ToString();
			}
			else if(item != null && !valid)
			{
				breakpointListView.Items.Remove(item);
			}
			mUpdating = false;
		}
        private void removeBreakpointToolStripMenuItem_Click(object sender, EventArgs e)
        {
            List <BreakpointDetails> bkpts = new List <BreakpointDetails>();

            foreach (ListViewItem item in breakpointListView.SelectedItems)
            {
                BreakpointDetails bkpt = (BreakpointDetails)item.Tag;
                bkpts.Add(bkpt);
            }
            foreach (BreakpointDetails bkpt in bkpts)
            {
                mDebugger.RemoveBreakpoint(bkpt.FileName, bkpt.Line);
            }
        }
 private void breakpointListView_ItemChecked(object sender, ItemCheckedEventArgs e)
 {
     if (!mUpdating)
     {
         BreakpointDetails bkpt = (BreakpointDetails)e.Item.Tag;
         if (e.Item.Checked)
         {
             mDebugger.EnableBreakpoint(bkpt.FileName, bkpt.Line);
         }
         else
         {
             mDebugger.DisableBreakpoint(bkpt.FileName, bkpt.Line);
         }
     }
 }
Exemple #8
0
        public BreakpointDetails ToggleBreakpoint(string file, int line)
        {
            BreakpointDetails bkpt = FindBreakpoint(file, line);

            if (bkpt == null)
            {
                return(AddBreakpoint(file, line));
            }
            else
            {
                RemoveBreakpoint(file, line);
            }

            return(null);
        }
Exemple #9
0
        public BreakpointDetails AddBreakpoint(string file, int line)
        {
            BreakpointDetails bkpt = FindBreakpoint(file, line);

            if (bkpt == null)
            {
                bkpt = new BreakpointDetails(file, line, true);
                mBreakpoints.Add(bkpt);

                if (mTargetStatus != TargetState.Disconnected && mConnectedTarget != null)
                {
                    bkpt.TargetState = BreakpointState.PendingAdd;
                    mConnectedTarget.AddBreakpoint(file, line, bkpt.ID);
                }
            }
            OnBreakpointChanged(bkpt, true);
            return(bkpt);
        }
Exemple #10
0
        public void RemoveBreakpoint(string file, int line)
        {
            BreakpointDetails bkpt = FindBreakpoint(file, line);

            if (bkpt != null)
            {
                if (mTargetStatus != TargetState.Disconnected && bkpt.Enabled && mConnectedTarget != null && bkpt.TargetState != BreakpointState.PendingRemove)
                {
                    bkpt.TargetState = BreakpointState.PendingRemove;
                    mConnectedTarget.RemoveBreakpoint(bkpt.ID);
                    OnBreakpointChanged(bkpt, true);
                }
                else if (mTargetStatus == TargetState.Disconnected || mConnectedTarget == null)
                {
                    mBreakpoints.Remove(bkpt);
                    OnBreakpointChanged(bkpt, false);
                }
            }
        }
Exemple #11
0
        public void DisableBreakpoint(string file, int line)
        {
            BreakpointDetails bkpt = FindBreakpoint(file, line);

            if (bkpt == null)
            {
                bkpt = new BreakpointDetails(file, line, false);
                mBreakpoints.Add(bkpt);
            }
            else if (bkpt.Enabled)
            {
                bkpt.Enabled = false;

                if (mConnectedTarget != null)
                {
                    bkpt.TargetState = BreakpointState.PendingDisable;
                    mConnectedTarget.RemoveBreakpoint(bkpt.ID);
                }
            }

            OnBreakpointChanged(bkpt, true);
        }
Exemple #12
0
        /// <summary>
        /// Triggered when the target has accepted or rejected a breakpoint.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        void Target_BreakpointUpdate(Target sender, BreakpointUpdateEventArgs args)
        {
            BreakpointDetails bkpt = FindBreakpoint(args.ID);

            if (bkpt != null)
            {
                if (args.State == BreakpointUpdateEventState.Added)
                {
                    // Force it to be displayed as enabled, 'cos the debugger is gonna break on it anyway!
                    bkpt.Enabled     = true;
                    bkpt.TargetState = BreakpointState.Accepted;
                }

                else if (args.State == BreakpointUpdateEventState.Invalid)
                {
                    bkpt.TargetState = BreakpointState.Invalid;
                }

                else if (args.State == BreakpointUpdateEventState.Removed)
                {
                    if (bkpt.TargetState == BreakpointState.PendingRemove)
                    {
                        bkpt.TargetState = BreakpointState.Removed;
                    }
                    else if (bkpt.TargetState == BreakpointState.PendingDisable)
                    {
                        bkpt.TargetState = BreakpointState.NotSent;
                    }
                }

                if (bkpt.TargetState == BreakpointState.Removed)
                {
                    mBreakpoints.Remove(bkpt);
                }

                OnBreakpointChanged(bkpt, bkpt.TargetState != BreakpointState.Removed);
            }
        }
Exemple #13
0
		void Debugger_BreakpointChanged(DebugManager sender, BreakpointDetails bkpt, bool valid)
		{
			if (PathUtils.Compare(Document.FileName, bkpt.FileName) == 0)
			{
				SetBreakpoint(bkpt.Line, valid);
			}
		}
Exemple #14
0
		void OnBreakpointChanged(BreakpointDetails bkpt, bool valid)
		{
			if (BreakpointChanged != null)
				BreakpointChanged(this, bkpt, valid);
		}
Exemple #15
0
		public void DisableBreakpoint(string file, int line)
		{
			BreakpointDetails bkpt = FindBreakpoint(file, line);
			if (bkpt == null)
			{
				bkpt = new BreakpointDetails(file, line, false);
				mBreakpoints.Add(bkpt);
			}
			else if (bkpt.Enabled)
			{
				bkpt.Enabled = false;

				if (mConnectedTarget != null)
				{
					bkpt.TargetState = BreakpointState.PendingDisable;
					mConnectedTarget.RemoveBreakpoint(bkpt.ID);
				}
			}

			OnBreakpointChanged(bkpt, true);
		}
Exemple #16
0
		public void EnableBreakpoint(string file, int line)
		{
			BreakpointDetails bkpt = FindBreakpoint(file, line);
			if (bkpt == null)
			{
				bkpt = new BreakpointDetails(file, line, true);
				mBreakpoints.Add(bkpt);
			}
			else if (!bkpt.Enabled)
			{
				bkpt.Enabled = true;
			}
			else
			{
				return;
			}

			if (mConnectedTarget != null)
			{
				bkpt.TargetState = BreakpointState.PendingAdd;
				mConnectedTarget.AddBreakpoint(file, line, bkpt.ID);
			}

			OnBreakpointChanged(bkpt, true);
		}
Exemple #17
0
		public BreakpointDetails AddBreakpoint(string file, int line)
		{
			BreakpointDetails bkpt = FindBreakpoint(file, line);
			if (bkpt == null)
			{
				bkpt = new BreakpointDetails(file, line, true);
				mBreakpoints.Add(bkpt);

				if (mTargetStatus != TargetState.Disconnected  &&  mConnectedTarget != null)
				{
					bkpt.TargetState = BreakpointState.PendingAdd;
					mConnectedTarget.AddBreakpoint(file, line, bkpt.ID);
				}
			}
			OnBreakpointChanged(bkpt, true);
			return bkpt;
		}