import net.sourceforge.phpeclipse.PHPeclipsePlugin;
import org.eclipse.core.resources.IMarkerDelta;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.DebugPlugin;
}
public void breakpointChanged(IBreakpoint breakpoint, IMarkerDelta arg1) {
- // is called e.g. after a line has been inserted before a breakpoint
- // but then the debugger is out of sync with the file anyway, so
- // debugging
- // should be stopped here.
- }
+ // This method is called whenever a source file has changed in which
+ // case
+ // we terminate since the source will be out of sync with the debugger
+ // The method will also be called when the user enables/disables
+ // breakpoints
+ // in this case we add or remove the breakpoint
+ try {
+ // Check if breakpoint state changed from disabled to enabled
+ if (breakpoint.isEnabled()
+ && !arg1.getAttribute("org.eclipse.debug.core.enabled",
+ false)) {
+ this.getPHPDBGProxy().addBreakpoint(breakpoint);
+ // Check if breakpoint state changed from enabled to disabled
+ } else if (!breakpoint.isEnabled()
+ && arg1
+ .getAttribute("org.eclipse.debug.core.enabled",
+ true)) {
+ this.getPHPDBGProxy().removeBreakpoint(breakpoint);
+ } else {
+ // All other cases will terminate the debugger
+ terminate();
+ }
+ } catch (CoreException e) {
+ // Do nothing
+ }
+ }
public boolean canDisconnect() {
return false;