From 41ada3d495ba3d0d6d440b60abd465c86d807e1a Mon Sep 17 00:00:00 2001 From: Ken Ryall Date: Wed, 21 Nov 2007 23:29:20 +0000 Subject: [PATCH] Bug 205017. --- .../cdt/debug/internal/core/model/CThread.java | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 b78b7b83a79..40d17e5d62d 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 @@ -10,6 +10,7 @@ * Stefan Bylund (Enea, steby@enea.se) - patch for bug 155464 * Ken Ryall (Nokia) - Support for breakpoint actions (bug 118308) * Ling Wang (Nokia) - Bug 176077 + * Denis Pilat (ST) - Bug 205017 *******************************************************************************/ package org.eclipse.cdt.debug.internal.core.model; @@ -742,6 +743,13 @@ public class CThread extends CDebugElement implements ICThread, IRestart, IResum CDebugCorePlugin.getDefault().getBreakpointActionManager().executeActions(platformBreakpoint, this); fireSuspendEvent( DebugEvent.BREAKPOINT ); } + + private void handleWatchpointHit( ICDIWatchpointTrigger watchPointTrigger ) { + IBreakpoint platformBreakpoint = ((CDebugTarget)getDebugTarget()).getBreakpointManager().getBreakpoint(watchPointTrigger.getWatchpoint()); + if (platformBreakpoint != null) + CDebugCorePlugin.getDefault().getBreakpointActionManager().executeActions(platformBreakpoint, this); + fireSuspendEvent( DebugEvent.BREAKPOINT ); + } private void handleSuspendedBySignal( ICDISignalReceived signal ) { fireSuspendEvent( DebugEvent.CLIENT_REQUEST ); @@ -944,6 +952,9 @@ public class CThread extends CDebugElement implements ICThread, IRestart, IResum else if ( reason instanceof ICDIBreakpointHit ) { handleBreakpointHit( (ICDIBreakpointHit)reason ); } + else if ( reason instanceof ICDIWatchpointTrigger ) { + handleWatchpointHit( (ICDIWatchpointTrigger)reason ); + } else if ( reason instanceof ICDISignalReceived ) { handleSuspendedBySignal( (ICDISignalReceived)reason ); }