diff options
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.java | 12 |
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 ) { |