Mono.Debugger.Backend.SingleSteppingEngine.remove_lmf_breakpoint C# (CSharp) Method

remove_lmf_breakpoint() protected method

protected remove_lmf_breakpoint ( ) : void
return void
        void remove_lmf_breakpoint()
        {
            if (lmf_breakpoint == null)
                return;

            /*
             * We reused an already existing single-stepping breakpoint at the requested location.
             */
            if (lmf_breakpoint.Breakpoint == lmf_breakpoint.StolenBreakpoint)
                return;

            inferior.RemoveBreakpoint (lmf_breakpoint.Breakpoint.ID);

            /*
             * We stole the single-stepping breakpoint -> restore it here.
             */

            if (lmf_breakpoint.StolenBreakpoint != null) {
                int dr_index;
                TargetAddress address = lmf_breakpoint.StolenBreakpoint.Address;
                int id = inferior.InsertHardwareBreakpoint (address, true, out dr_index);

                temp_breakpoint = new TemporaryBreakpointData (id, address);

                Report.Debug (DebugFlags.SSE, "{0} restored stolen breakpoint: {1}", this, temp_breakpoint);
            }

            lmf_breakpoint = null;
        }
SingleSteppingEngine