diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/DestroyedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/DestroyedEvent.java index 28963375484..325c36ffd6b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/DestroyedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/DestroyedEvent.java @@ -1,7 +1,14 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + * + */ package org.eclipse.cdt.debug.mi.core.cdi; import org.eclipse.cdt.debug.core.cdi.event.ICDIDestroyedEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; +import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent; +import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent; /** * @author alain @@ -16,11 +23,34 @@ public class DestroyedEvent implements ICDIDestroyedEvent { CSession session; ICDIObject source; + public DestroyedEvent(CSession s, MIThreadExitEvent ethread) { + session = s; + source = new CThread(session.getCTarget(), ethread.getId()); + } + + public DestroyedEvent(CSession s, MIVarChangedEvent var) { + session = s; + VariableManager mgr = session.getVariableManager(); + String varName = var.getVarName(); + VariableManager.Element element = mgr.removeOutOfScope(varName); + if (element != null && element.variable != null) { + source = element.variable; + } else { + source = new CObject(session.getCTarget()); + } + + } + public DestroyedEvent(CSession s, ICDIObject src) { session = s; source = src; } + public DestroyedEvent(CSession s) { + session = s; + } + + /** * @see org.eclipse.cdt.debug.core.cdi.event.ICDIEvent#getSource() */