diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index f6d17307925..6648d21b171 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,7 @@ +2004-10-22 Mikhail Khodjaiants + Fire the suspend event for the current thread on the target creation. + * CDebugTarget.java + 2004-10-21 Mikhail Khodjaiants Thread should handle CDI events from the corresponding CDI thread only. "canSuspend" should return true if the thread is stepping. diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java index c1cefc01ffc..fcbfd7eb6d1 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java @@ -279,9 +279,22 @@ public class CDebugTarget extends CDebugElement implements ICDebugTarget, ICDIEv catch( CDIException e ) { // ignore } + DebugEvent suspendEvent = null; for( int i = 0; i < cdiThreads.length; ++i ) { CThread thread = createThread( cdiThreads[i] ); debugEvents.add( thread.createCreateEvent() ); + try { + if ( cdiThreads[i].equals( getCDITarget().getCurrentThread() ) ) { + // Use BREAKPOINT as a detail to force perspective switch + suspendEvent = thread.createSuspendEvent( DebugEvent.BREAKPOINT ); + } + } + catch( CDIException e ) { + // ignore + } + } + if ( suspendEvent != null ) { + debugEvents.add( suspendEvent ); } }