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 9a0b56e71de..926cbf3614d 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 @@ -30,6 +30,8 @@ import org.eclipse.cdt.debug.core.cdi.ICDIEndSteppingRange; import org.eclipse.cdt.debug.core.cdi.ICDILocation; import org.eclipse.cdt.debug.core.cdi.ICDISessionObject; import org.eclipse.cdt.debug.core.cdi.ICDISignal; +import org.eclipse.cdt.debug.core.cdi.ICDIWatchpointScope; +import org.eclipse.cdt.debug.core.cdi.ICDIWatchpointTrigger; import org.eclipse.cdt.debug.core.cdi.event.ICDIChangedEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDICreatedEvent; import org.eclipse.cdt.debug.core.cdi.event.ICDIDestroyedEvent; @@ -1166,6 +1168,14 @@ public class CDebugTarget extends CDebugElement { handleSuspendedBySignal( (ICDISignal)reason ); } + else if ( reason instanceof ICDIWatchpointTrigger ) + { + handleWatchpointTrigger( (ICDIWatchpointTrigger)reason ); + } + else if ( reason instanceof ICDIWatchpointScope ) + { + handleWatchpointScope( (ICDIWatchpointScope)reason ); + } } private void handleResumedEvent( ICDIResumedEvent event ) @@ -1204,6 +1214,16 @@ public class CDebugTarget extends CDebugElement { fireSuspendEvent( DebugEvent.BREAKPOINT ); } + + private void handleWatchpointTrigger( ICDIWatchpointTrigger wt ) + { + fireSuspendEvent( DebugEvent.BREAKPOINT ); + } + + private void handleWatchpointScope( ICDIWatchpointScope ws ) + { + fireSuspendEvent( DebugEvent.BREAKPOINT ); + } private void handleSuspendedBySignal( ICDISignal signal ) { 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 791f92b400f..b56f3cb5d99 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 @@ -19,6 +19,7 @@ import org.eclipse.cdt.debug.core.IState; import org.eclipse.cdt.debug.core.cdi.ICDIBreakpointHit; import org.eclipse.cdt.debug.core.cdi.ICDIExitInfo; import org.eclipse.cdt.debug.core.cdi.ICDISignal; +import org.eclipse.cdt.debug.core.cdi.ICDIWatchpointTrigger; import org.eclipse.cdt.debug.ui.CDebugUIPlugin; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; @@ -290,10 +291,18 @@ public class CDTDebugModelPresentation extends LabelProvider if ( info != null && info instanceof ICDISignal ) { String label = target.getName() + - MessageFormat.format( " (Signal \'{0}\' received. Meaning: {1})", + MessageFormat.format( " (Signal ''{0}'' received. Meaning: {1})", new String[] { ((ICDISignal)info).getName(), ((ICDISignal)info).getMeaning() } ); 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 ICDIBreakpointHit ) {