diff options
author | Alain Magloire | 2003-02-12 05:23:47 +0000 |
---|---|---|
committer | Alain Magloire | 2003-02-12 05:23:47 +0000 |
commit | 922e5d2e6f15970f14a1f42605d71c1963b6725e (patch) | |
tree | d0f12a93c8baffc6c280055483045904334a22a1 | |
parent | 3684997cf592270a1597d2c7dfc30107edb90128 (diff) | |
download | org.eclipse.cdt-922e5d2e6f15970f14a1f42605d71c1963b6725e.tar.gz org.eclipse.cdt-922e5d2e6f15970f14a1f42605d71c1963b6725e.tar.xz org.eclipse.cdt-922e5d2e6f15970f14a1f42605d71c1963b6725e.zip |
Deal with MIVarDeletedEvent.
-rw-r--r-- | debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java index 17647b4fccf..6d5fb54e106 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java @@ -10,6 +10,7 @@ import org.eclipse.cdt.debug.core.cdi.event.ICDIDestroyedEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary; import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager; +import org.eclipse.cdt.debug.mi.core.cdi.ExpressionManager; import org.eclipse.cdt.debug.mi.core.cdi.Session; import org.eclipse.cdt.debug.mi.core.cdi.SharedLibraryManager; import org.eclipse.cdt.debug.mi.core.cdi.VariableManager; @@ -20,7 +21,7 @@ import org.eclipse.cdt.debug.mi.core.cdi.model.Variable; import org.eclipse.cdt.debug.mi.core.event.MIBreakpointDeletedEvent; import org.eclipse.cdt.debug.mi.core.event.MISharedLibUnloadedEvent; import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent; -import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent; +import org.eclipse.cdt.debug.mi.core.event.MIVarDeletedEvent; /** */ @@ -34,19 +35,29 @@ public class DestroyedEvent implements ICDIDestroyedEvent { source = new Thread(session.getCurrentTarget(), ethread.getId()); } - public DestroyedEvent(Session s, MIVarChangedEvent var) { + public DestroyedEvent(Session s, MIVarDeletedEvent var) { session = s; - VariableManager mgr = (VariableManager)session.getVariableManager(); + VariableManager varMgr = (VariableManager)session.getVariableManager(); String varName = var.getVarName(); - Variable variable = mgr.getVariable(varName); + Variable variable = varMgr.getVariable(varName); if (variable!= null) { source = variable; try { - mgr.removeVariable(variable.getMIVar().getVarName()); + varMgr.removeVariable(variable.getMIVar().getVarName()); } catch (CDIException e) { } } else { - source = new CObject(session.getCurrentTarget()); + ExpressionManager expMgr = (ExpressionManager)session.getExpressionManager(); + variable = expMgr.getExpression(varName); + if (variable != null) { + source = variable; + try { + expMgr.removeExpression(variable.getMIVar().getVarName()); + } catch (CDIException e) { + } + } else { + source = new CObject(session.getCurrentTarget()); + } } } |