From af45b6d21038c3dc0930f3a6579187247bd1ff92 Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Tue, 17 Feb 2004 19:38:43 +0000 Subject: [PATCH] Merged changes from 1.2.1 branch. --- debug/org.eclipse.cdt.debug.ui/ChangeLog | 4 + .../ui/CDTDebugModelPresentation.java | 82 ++++++++++--------- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index 15987aaeb1c..f150f34b80b 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,7 @@ +2004-02-16 Mikhail Khodjaiants + Fix for bug 52135: Debugger should indicate which thread triggered breakpoint. + * CDTDebugModelPresentation.java + 2004-02-11 Mikhail Khodjaiants Fix for bug 51062: Source locator oddness. * DefualtSourceLocator.java diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java index b260aa31d48..5dce030238c 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java @@ -13,7 +13,6 @@ import org.eclipse.cdt.core.resources.FileStorage; import org.eclipse.cdt.debug.core.CDebugUtils; import org.eclipse.cdt.debug.core.cdi.ICDIBreakpointHit; import org.eclipse.cdt.debug.core.cdi.ICDIExitInfo; -import org.eclipse.cdt.debug.core.cdi.ICDISession; import org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryEvent; import org.eclipse.cdt.debug.core.cdi.ICDISignalExitInfo; import org.eclipse.cdt.debug.core.cdi.ICDISignalReceived; @@ -455,41 +454,7 @@ public class CDTDebugModelPresentation extends LabelProvider return label + ")"; } case IState.SUSPENDED: - { - Object info = state.getCurrentStateInfo(); - if ( info != null && info instanceof ICDISignalReceived ) - { - ICDISignal signal = ((ICDISignalReceived)info).getSignal(); - String label = target.getName() + - MessageFormat.format( " (Signal ''{0}'' received. Description: {1})", - new String[] { signal.getName(), signal.getDescription() } ); - return label; - } - if ( info != null && info instanceof ICDIWatchpointTrigger ) - { - String label = target.getName() + - MessageFormat.format( " (Watchpoint triggered. Old value: ''{0}''. New value: ''{1}'')", - new String[] { ((ICDIWatchpointTrigger)info).getOldValue(), - ((ICDIWatchpointTrigger)info).getNewValue() } ); - return label; - } - if ( info != null && info instanceof ICDIWatchpointScope ) - { - return target.getName() + " (Watchpoint is out of scope)"; - } - if ( info != null && info instanceof ICDIBreakpointHit ) - { - return target.getName() + " (Breakpoint hit)"; - } - if ( info != null && info instanceof ICDISharedLibraryEvent ) - { - return target.getName() + " (Stopped on shared library event)"; - } - if ( info != null && info instanceof ICDISession ) - { - return target.getName() + " (Suspended)"; - } - } + return target.getName() + " (Suspended)"; } } return target.getName(); @@ -497,23 +462,60 @@ public class CDTDebugModelPresentation extends LabelProvider protected String getThreadText( IThread thread, boolean qualified ) throws DebugException { + String threadName = getFormattedString( "Thread [{0}]", thread.getName() ); ICDebugTargetType targetType = (ICDebugTargetType)thread.getDebugTarget().getAdapter( ICDebugTargetType.class ); int type = ( targetType != null ) ? targetType.getTargetType() : ICDebugTargetType.TARGET_TYPE_UNKNOWN; if ( type == ICDebugTargetType.TARGET_TYPE_LOCAL_CORE_DUMP ) { - return getFormattedString( "Thread [{0}]", thread.getName() ); + return threadName; } if ( thread.isTerminated() ) { - return getFormattedString( "Thread [{0}] (Terminated)", thread.getName() ); + return getFormattedString( "{0} (Terminated)", threadName ); } if ( thread.isStepping() ) { - return getFormattedString( "Thread [{0}] (Stepping)", thread.getName()); + return getFormattedString( "{0} (Stepping)", threadName ); } if ( !thread.isSuspended() ) { - return getFormattedString( "Thread [{0}] (Running)", thread.getName() ); + return getFormattedString( "{0} (Running)", threadName ); + } + if ( thread.isSuspended() ) + { + IState state = (IState)thread.getAdapter( IState.class ); + if ( state != null ) + { + Object info = state.getCurrentStateInfo(); + if ( info != null && info instanceof ICDISignalReceived ) + { + ICDISignal signal = ((ICDISignalReceived)info).getSignal(); + String label = threadName + + MessageFormat.format( " (Suspended: Signal ''{0}'' received. Description: {1})", + new String[] { signal.getName(), signal.getDescription() } ); + return label; + } + if ( info != null && info instanceof ICDIWatchpointTrigger ) + { + String label = threadName + + MessageFormat.format( " (Suspended: Watchpoint triggered. Old value: ''{0}''. New value: ''{1}'')", + new String[] { ((ICDIWatchpointTrigger)info).getOldValue(), + ((ICDIWatchpointTrigger)info).getNewValue() } ); + return label; + } + if ( info != null && info instanceof ICDIWatchpointScope ) + { + return threadName + " (Suspended: Watchpoint is out of scope)"; + } + if ( info != null && info instanceof ICDIBreakpointHit ) + { + return threadName + " (Suspended: Breakpoint hit)"; + } + if ( info != null && info instanceof ICDISharedLibraryEvent ) + { + return threadName + " (Suspended: Shared library event)"; + } + } } return getFormattedString( "Thread [{0}] (Suspended)", thread.getName() ); }