### Eclipse Workspace Patch 1.0 #P org.eclipse.cdt.debug.mi.core Index: cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java =================================================================== RCS file: /cvsroot/tools/org.eclipse.cdt/all/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java,v retrieving revision 1.44.2.1 diff -u -r1.44.2.1 BreakpointManager.java --- cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java 5 Nov 2007 03:38:17 -0000 1.44.2.1 +++ cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java 16 Jan 2008 20:51:45 -0000 @@ -147,7 +147,7 @@ // Stop the program if (allowInterrupt && target.isRunning()) { // Disable events. - ((EventManager)getSession().getEventManager()).allowProcessingEvents(false); + ((EventManager) getSession().getEventManager()).allowProcessingEvents(false); target.suspend(); shouldRestart = true; } @@ -155,10 +155,9 @@ } void resumeInferior(Target target, boolean shouldRestart) throws CDIException { + ((EventManager) getSession().getEventManager()).allowProcessingEvents(true); if (shouldRestart) { target.resume(); - // Enable events again. - ((EventManager)getSession().getEventManager()).allowProcessingEvents(true); } } @@ -239,18 +238,23 @@ if (info == null) { throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } + for (int i = 0; i < miBreakpoints.length; i++) { + miBreakpoints[i].setEnabled(true); + } + breakpoint.setEnabled0(true); } catch (MIException e) { throw new MI2CDIException(e); } finally { - // Resume the program and enable events. - resumeInferior(target, restart); - } - for (int i = 0; i < miBreakpoints.length; i++) { - miBreakpoints[i].setEnabled(true); + try { + // Resume the program and enable events. + resumeInferior(target, restart); + } finally { + // Fire a changed Event. + miSession.fireEvent(new MIBreakpointChangedEvent(miSession, numbers[0])); + } } - breakpoint.setEnabled0(true); - // Fire a changed Event. - miSession.fireEvent(new MIBreakpointChangedEvent(miSession, numbers[0])); + + } /** @@ -299,17 +303,20 @@ if (info == null) { throw new CDIException(CdiResources.getString("cdi.Common.No_answer")); //$NON-NLS-1$ } + for (int i = 0; i < miBreakpoints.length; i++) { + miBreakpoints[i].setEnabled(false); + } + breakpoint.setEnabled0(false); } catch (MIException e) { throw new MI2CDIException(e); } finally { - resumeInferior(target, restart); - } - for (int i = 0; i < miBreakpoints.length; i++) { - miBreakpoints[i].setEnabled(false); + try { + resumeInferior(target, restart); + } finally { + // Fire a changed Event. + miSession.fireEvent(new MIBreakpointChangedEvent(miSession, numbers[0])); + } } - breakpoint.setEnabled0(false); - // Fire a changed Event. - miSession.fireEvent(new MIBreakpointChangedEvent(miSession, numbers[0])); } /**