mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-15 12:15:47 +02:00
Bug 295988 Inability to create asynchronously created variable during update shouldn't break other variable updates
- Log CDIException during #processSuspendedEvent as this indicates something has broken.
This commit is contained in:
parent
193a63fe4e
commit
ca19a9fd59
2 changed files with 8 additions and 2 deletions
|
@ -23,6 +23,7 @@ import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
|
||||||
import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener;
|
import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener;
|
||||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame;
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIStackFrame;
|
||||||
import org.eclipse.cdt.debug.mi.core.MIException;
|
import org.eclipse.cdt.debug.mi.core.MIException;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.MIPlugin;
|
||||||
import org.eclipse.cdt.debug.mi.core.MISession;
|
import org.eclipse.cdt.debug.mi.core.MISession;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.event.ChangedEvent;
|
import org.eclipse.cdt.debug.mi.core.cdi.event.ChangedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.cdi.event.CreatedEvent;
|
import org.eclipse.cdt.debug.mi.core.cdi.event.CreatedEvent;
|
||||||
|
@ -328,7 +329,8 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
||||||
srcMgr.update(currentTarget);
|
srcMgr.update(currentTarget);
|
||||||
}
|
}
|
||||||
} catch (CDIException e) {
|
} catch (CDIException e) {
|
||||||
//System.out.println(e);
|
// Something went wrong => preventing updates to the model, this is serious
|
||||||
|
MIPlugin.log(e);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -687,7 +687,11 @@ public class VariableManager extends Manager {
|
||||||
variable.setMIVarCreate(var);
|
variable.setMIVarCreate(var);
|
||||||
update(target, variable, eventList);
|
update(target, variable, eventList);
|
||||||
} catch (MIException e) {
|
} catch (MIException e) {
|
||||||
throw new MI2CDIException(e);
|
// Creating failed, variable not in scope => remove
|
||||||
|
// No events to fire as the variable isn't backed by a MIVar
|
||||||
|
getVariablesList(target).remove(variable);
|
||||||
|
variable.setUpdated(false);
|
||||||
|
return;
|
||||||
} catch (CDIException e) {
|
} catch (CDIException e) {
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue