X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.debug.core/src/net/sourceforge/phpdt/internal/debug/core/model/PHPDebugTarget.java b/net.sourceforge.phpeclipse.debug.core/src/net/sourceforge/phpdt/internal/debug/core/model/PHPDebugTarget.java index 9ecd65e..9e5dfb8 100644 --- a/net.sourceforge.phpeclipse.debug.core/src/net/sourceforge/phpdt/internal/debug/core/model/PHPDebugTarget.java +++ b/net.sourceforge.phpeclipse.debug.core/src/net/sourceforge/phpdt/internal/debug/core/model/PHPDebugTarget.java @@ -35,11 +35,13 @@ public class PHPDebugTarget implements IPHPDebugTarget, ILaunchListener, IDebugE private IProcess process; private boolean isTerminated; + private boolean isSuspended; private ILaunch launch; private PHPThread[] threads; private PHPDBGProxy phpDBGProxy; public PHPDebugTarget(ILaunch launch, IProcess process) { + this.isSuspended = false; this.launch = launch; this.process = process; this.threads = new PHPThread[0]; @@ -98,7 +100,7 @@ public class PHPDebugTarget implements IPHPDebugTarget, ILaunchListener, IDebugE } public String getModelIdentifier() { - return PHPDebugCorePlugin.getUniqueIdentifier(); + return PHPDebugCorePlugin.PLUGIN_ID; } public IDebugTarget getDebugTarget() { @@ -125,21 +127,27 @@ public class PHPDebugTarget implements IPHPDebugTarget, ILaunchListener, IDebugE } public boolean canResume() { - return false; + if(isTerminated) return false; + return isSuspended; } public boolean canSuspend() { - return false; + if(isTerminated) return false; + return !isSuspended; } public boolean isSuspended() { - return false; + return isSuspended; } public void resume() throws DebugException { + this.getPHPDBGProxy().resume(); + isSuspended= false; } public void suspend() throws DebugException { + this.getPHPDBGProxy().pause(); + isSuspended= true; } public void breakpointAdded(IBreakpoint breakpoint) { @@ -231,9 +239,15 @@ public class PHPDebugTarget implements IPHPDebugTarget, ILaunchListener, IDebugE DebugEvent event = events[i]; if (event.getKind() == DebugEvent.TERMINATE) { Object source = event.getSource(); - if (source instanceof PHPDebugTarget || source instanceof IDebugTarget || source instanceof IProcess) { + if (source instanceof PHPDebugTarget || source instanceof IDebugTarget) { getPHPDBGProxy().stop(); + } else if(source instanceof IProcess) { + if(getDebugTarget().getProcess() == (IProcess)source) { + getPHPDBGProxy().stop(); + } } + } else if (event.getKind() == DebugEvent.SUSPEND) { + getPHPDBGProxy().pause(); } } }