コード例 #1
0
        internal void EnableBreakpoint(BreakpointEntry entry, bool enable)
        {
            if (enable)
                entry.Handle.Enable (proc);
            else
                entry.Handle.Disable (proc);

            if (BreakpointChanged != null)
                BreakpointChanged (this, new BreakpointEventArgs (entry));
        }
コード例 #2
0
        void RemoveBreakpoint(BreakpointEntry entry)
        {
            if (IsDebugging)
                entry.Handle.Remove (proc);

            breakpoints.Remove (entry.FileName + ":" + entry.Line);

            if (BreakpointRemoved != null)
                BreakpointRemoved (this, new BreakpointEventArgs (entry));
        }
コード例 #3
0
        public bool AddBreakpoint(string filename, int linenum)
        {
            string key = filename + ":" + linenum;
            if (breakpoints.Contains (key)) return true;

            BreakpointHandle brkptnum = null;
            if (IsDebugging) {
                Breakpoint point = CreateBreakpoint (key);
                SourceLocation loc = backend.FindLocation(filename, linenum);
                if (loc == null)
                    return false;
                brkptnum = loc.InsertBreakpoint (proc, point);
            }

            BreakpointEntry entry = new BreakpointEntry (this, filename, linenum);
            entry.Handle = brkptnum;

            breakpoints.Add (key, entry);

            if (BreakpointAdded != null)
                BreakpointAdded (this, new BreakpointEventArgs (entry));

            return true;
        }