diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java index 4a9cb41d567..fb8286a59af 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CTarget.java @@ -102,6 +102,12 @@ public class CTarget implements ICDITarget { } catch (MIException e) { throw new CDIException(e.getMessage()); } + + // Resetting threads may change the value of + // some variables like Register. Send an update + // To generate changeEvents. + VariableManager varMgr = session.getVariableManager(); + varMgr.update(); } // We should be allright now. diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java index ac7a1a02b68..b87f0cfa05a 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CThread.java @@ -93,7 +93,8 @@ public class CThread extends CObject implements ICDIThread { } public void setCurrentStackFrame(StackFrame stackframe) throws CDIException { - MISession mi = getCTarget().getCSession().getMISession(); + CSession session = getCTarget().getCSession(); + MISession mi = session.getMISession(); CommandFactory factory = mi.getCommandFactory(); int frameNum = 0; if (stackframe != null) { @@ -109,6 +110,13 @@ public class CThread extends CObject implements ICDIThread { throw new CDIException("No answer"); } currentFrame = stackframe; + + // Resetting threads may change the value of + // some variables like Register. Send an update + // To generate changeEvents. + VariableManager varMgr = session.getVariableManager(); + varMgr.update(); + } catch (MIException e) { throw new CDIException(e.getMessage()); }