From e17e87f30e8710e3e1e056de5c5c8c28eb86bb4e Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Fri, 27 Sep 2002 19:56:37 +0000 Subject: [PATCH] Terminate debug session when it is disconnected from target. --- .../internal/core/model/CDebugTarget.java | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java index faf7b08d3c8..0e5fd280a8f 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java @@ -663,7 +663,7 @@ public class CDebugTarget extends CDebugElement */ public boolean canDisconnect() { - return supportsDisconnect() && !isDisconnected(); + return supportsDisconnect() && !isDisconnected() && isSuspended(); } /* (non-Javadoc) @@ -685,7 +685,6 @@ public class CDebugTarget extends CDebugElement try { getCDITarget().disconnect(); - disconnected(); } catch( CDIException e ) { @@ -1005,6 +1004,14 @@ public class CDebugTarget extends CDebugElement { if ( !isDisconnected() ) { + try + { + getCDISession().terminate(); + } + catch( CDIException e ) + { + logError( e ); + } setDisconnected( true ); cleanup(); fireTerminateEvent(); @@ -1373,18 +1380,6 @@ public class CDebugTarget extends CDebugElement { setCurrentStateId( IState.DISCONNECTED ); setCurrentStateInfo( null ); - IProcess process = getProcess(); - if ( process != null ) - { - try - { - process.terminate(); - } - catch( DebugException e ) - { - CDebugCorePlugin.log( e.getStatus() ); - } - } disconnected(); }