Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java')
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java
index 8c3e002ed66..9e958281698 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java
@@ -28,6 +28,7 @@ import java.util.Set;
import org.eclipse.cdt.core.IAddress;
import org.eclipse.cdt.core.IAddressFactory;
import org.eclipse.cdt.core.IBinaryParser.IBinaryObject;
+import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.debug.core.CDIDebugModel;
import org.eclipse.cdt.debug.core.CDebugCorePlugin;
import org.eclipse.cdt.debug.core.CDebugUtils;
@@ -837,6 +838,17 @@ public class CBreakpointManager implements IBreakpointsListener, IBreakpointMana
sourceHandle = ((IStorage)sourceElement).getFullPath().toOSString();
resource = ResourcesPlugin.getWorkspace().getRoot();
}
+ else if ( sourceElement instanceof ITranslationUnit ) {
+ ITranslationUnit translationUnit = (ITranslationUnit)sourceElement;
+ sourceHandle = translationUnit.getPath().toString();
+ resource = translationUnit.getResource();
+
+ // an IExternalTranslationUnit doesn't have an IResource
+ if (resource == null) {
+ resource = getProject();
+ }
+ }
+
breakpoint = createLineBreakpoint( sourceHandle, resource, cdiBreakpoint );
}
else if ( cdiBreakpoint instanceof ICDIFunctionBreakpoint ) {

Back to the top