diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 8b5a13cf617..d1ff8221b5a 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,9 @@ +2003-08-20 Mikhail Khodjaiants + Unable to terminate post mortem debugging session. + Extended the 'CDebugTarget' class to overload the 'terminate' and 'canTerminate' methods. + * CDebugModel.java + * CCoreFileDebugTarget.java: new + 2003-08-19 Mikhail Khodjaiants Create ICDIVariableObject for each array partition to compute a detail panel's value. * CArrayPartition.java diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/CDebugModel.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/CDebugModel.java index a3f28b26fb0..02a1738de10 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/CDebugModel.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/CDebugModel.java @@ -36,6 +36,7 @@ import org.eclipse.cdt.debug.internal.core.breakpoints.CAddressBreakpoint; import org.eclipse.cdt.debug.internal.core.breakpoints.CFunctionBreakpoint; import org.eclipse.cdt.debug.internal.core.breakpoints.CLineBreakpoint; import org.eclipse.cdt.debug.internal.core.breakpoints.CWatchpoint; +import org.eclipse.cdt.debug.internal.core.model.CCoreFileDebugTarget; import org.eclipse.cdt.debug.internal.core.model.CDebugTarget; import org.eclipse.cdt.debug.internal.core.model.CExpression; import org.eclipse.cdt.debug.internal.core.model.CFormattedMemoryBlock; @@ -222,15 +223,11 @@ public class CDebugModel { public void run( IProgressMonitor m ) { - target[0] = new CDebugTarget( launch, - ICDebugTargetType.TARGET_TYPE_LOCAL_CORE_DUMP, - cdiTarget, - name, - null, - debuggerProcess, - file, - true, - false ); + target[0] = new CCoreFileDebugTarget( launch, + cdiTarget, + name, + debuggerProcess, + file ); } }; try diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CCoreFileDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CCoreFileDebugTarget.java new file mode 100644 index 00000000000..8df4aaecb46 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CCoreFileDebugTarget.java @@ -0,0 +1,56 @@ +/* + *(c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + * + */ + +package org.eclipse.cdt.debug.internal.core.model; + +import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; +import org.eclipse.cdt.debug.core.model.ICDebugTargetType; +import org.eclipse.core.resources.IFile; +import org.eclipse.debug.core.DebugException; +import org.eclipse.debug.core.ILaunch; +import org.eclipse.debug.core.model.IProcess; + +/** + * Enter type comment. + * + * @since Aug 20, 2003 + */ +public class CCoreFileDebugTarget extends CDebugTarget +{ + public CCoreFileDebugTarget( ILaunch launch, + ICDITarget cdiTarget, + String name, + IProcess debuggerProcess, + IFile file ) + { + super( launch, + ICDebugTargetType.TARGET_TYPE_LOCAL_CORE_DUMP, + cdiTarget, + name, + null, + debuggerProcess, + file, + true, + false ); + } + + /* (non-Javadoc) + * @see org.eclipse.debug.core.model.ITerminate#canTerminate() + */ + public boolean canTerminate() + { + return !isTerminated(); + } + + /* (non-Javadoc) + * @see org.eclipse.debug.core.model.ITerminate#terminate() + */ + public void terminate() throws DebugException + { + setTerminating( true ); + terminated(); + } +}