diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 3e7fe4418f3..16786d1fd65 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,7 @@ +2002-10-14 Mikhail Khodjaiants + * CThread.java: Set the correct detail for 'resume' event to prevent collapsing of the variable's and + register's trees after stepping. + 2002-10-14 Mikhail Khodjaiants * ISwitchToThread.java: New method to get the current thread. * CDebugTarget.java: Implemented the 'getCurrentThread' method of the 'ISwitchToThread' interface. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java index 4750cccda9b..99a6ffe5ae7 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CThread.java @@ -831,38 +831,32 @@ public class CThread extends CDebugElement setLastStackFrame( null ); int state = IState.RUNNING; int detail = DebugEvent.UNSPECIFIED; - if ( isCurrent() ) + switch( event.getType() ) { - switch( event.getType() ) - { - case ICDIResumedEvent.CONTINUE: - detail = DebugEvent.CLIENT_REQUEST; - state = IState.RUNNING; - disposeStackFrames(); - break; - case ICDIResumedEvent.STEP_INTO: - case ICDIResumedEvent.STEP_INTO_INSTRUCTION: - detail = DebugEvent.STEP_INTO; - state = IState.STEPPING; - preserveStackFrames(); - break; - case ICDIResumedEvent.STEP_OVER: - case ICDIResumedEvent.STEP_OVER_INSTRUCTION: - detail = DebugEvent.STEP_OVER; - state = IState.STEPPING; - preserveStackFrames(); - break; - case ICDIResumedEvent.STEP_RETURN: - detail = DebugEvent.STEP_RETURN; - state = IState.STEPPING; - preserveStackFrames(); - break; - } + case ICDIResumedEvent.CONTINUE: + detail = DebugEvent.RESUME; + break; + case ICDIResumedEvent.STEP_INTO: + case ICDIResumedEvent.STEP_INTO_INSTRUCTION: + detail = DebugEvent.STEP_INTO; + break; + case ICDIResumedEvent.STEP_OVER: + case ICDIResumedEvent.STEP_OVER_INSTRUCTION: + detail = DebugEvent.STEP_OVER; + break; + case ICDIResumedEvent.STEP_RETURN: + detail = DebugEvent.STEP_RETURN; + break; + } + if ( isCurrent() && event.getType() != ICDIResumedEvent.CONTINUE ) + { + preserveStackFrames(); + state = IState.STEPPING; } else { disposeStackFrames(); - detail = DebugEvent.CLIENT_REQUEST; + state = IState.RUNNING; } setCurrentStateId( state ); setCurrentStateInfo( null );