diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java index 9665a194089..927f0b834d2 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SignalManager.java @@ -106,13 +106,17 @@ public class SignalManager extends SessionObject implements ICDISignalManager { public ICDISignal getSignal(String name) { ICDISignal sig = findSignal(name); if (sig == null) { + MISigHandle miSig = null; try { - MISigHandle miSig = getMISignal(name); + miSig = getMISignal(name); sig = new Signal(this, miSig); if (signalsList != null) { signalsList.add(sig); } } catch (CDIException e) { + // The session maybe terminated because of the signal. + miSig = new MISigHandle(name, false, false, false, name); + sig = new Signal(this, miSig); } } return sig;