From c1fa89c0408a2fcccd5b2a9a88b1ba8a1a0dc73a Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Thu, 7 Jul 2005 19:59:59 +0000 Subject: [PATCH] 2005-07-07 Alain Magloire Try to suspend the target before disconnecting. * cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java --- debug/org.eclipse.cdt.debug.mi.core/ChangeLog | 4 ++++ .../eclipse/cdt/debug/mi/core/cdi/model/Target.java | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog index 3ae7a4ab2de..c444d588e11 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog @@ -1,3 +1,7 @@ +2005-07-07 Alain Magloire + Try to suspend the target before disconnecting. + * cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java + 2005-06-29 Alain Magloire Fix PR 100602 * mi/org/eclipse/cdt/debug/mi/core/GDBTypeParser.java diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java index e4fe3a0a78e..438dc6b809e 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java @@ -45,6 +45,7 @@ import org.eclipse.cdt.debug.mi.core.MISession; import org.eclipse.cdt.debug.mi.core.RxThread; import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager; import org.eclipse.cdt.debug.mi.core.cdi.CdiResources; +import org.eclipse.cdt.debug.mi.core.cdi.EventManager; import org.eclipse.cdt.debug.mi.core.cdi.ExpressionManager; import org.eclipse.cdt.debug.mi.core.cdi.MI2CDIException; import org.eclipse.cdt.debug.mi.core.cdi.MemoryManager; @@ -569,6 +570,15 @@ public class Target extends SessionObject implements ICDITarget { * @see org.eclipse.cdt.debug.core.cdi.model.ICDITarget#disconnect() */ public void disconnect() throws CDIException { + // if Target is running try to suspend first. + if (isRunning()) { + try { + ((EventManager)getSession().getEventManager()).allowProcessingEvents(false); + suspend(); + } finally { + ((EventManager)getSession().getEventManager()).allowProcessingEvents(true); + } + } CommandFactory factory = miSession.getCommandFactory(); MITargetDetach detach = factory.createMITargetDetach(); try {