1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-05 16:15:25 +02:00

Fix for bug 52135: Debugger should indicate which thread triggered breakpoint.

This commit is contained in:
Mikhail Khodjaiants 2004-02-17 01:20:43 +00:00
parent 0470019cbd
commit d542c7f179
4 changed files with 54 additions and 5 deletions

View file

@ -1,3 +1,7 @@
2004-02-16 Mikhail Khodjaiants
Fix for bug 52135: Debugger should indicate which thread triggered breakpoint.
* CThread.java
2004-02-11 Mikhail Khodjaiants
In the 'reset' method check if value is an instance of CValue before type casting.
* CVariable.java

View file

@ -1129,6 +1129,8 @@ public class CThread extends CDebugElement
{
if ( adapter.equals( IRunToLine.class ) )
return this;
if ( adapter.equals( IState.class ) )
return this;
return super.getAdapter(adapter);
}

View file

@ -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

View file

@ -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,6 +454,8 @@ public class CDTDebugModelPresentation extends LabelProvider
return label + ")";
}
case IState.SUSPENDED:
return target.getName() + " (Suspended)";
/*
{
Object info = state.getCurrentStateInfo();
if ( info != null && info instanceof ICDISignalReceived )
@ -490,6 +491,7 @@ public class CDTDebugModelPresentation extends LabelProvider
return target.getName() + " (Suspended)";
}
}
*/
}
}
return target.getName();
@ -497,23 +499,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() );
}