From 86bd34cb790a8516af8ce4671864d5e3620871e8 Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Wed, 10 Sep 2003 21:23:38 +0000 Subject: [PATCH] If breakpoint is a line breakpoint check if source locator contains the file instead of container project. --- debug/org.eclipse.cdt.debug.core/ChangeLog | 5 +++ .../internal/core/model/CDebugTarget.java | 38 ++++++++++++------- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 8155cfc201e..0f418193b85 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,8 @@ +2003-09-10 Mikhail Khodjaiants + If breakpoint is a line breakpoint check if source locator contains this file + instead of container project. + * CDebugTarget.java + 2003-09-10 Mikhail Khodjaiants Fix for PR 42790: Memory view is not cleared when target is terminated. * CFormattedMemoryBlock.java: fire 'terminate' event when block is disposing. 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 6f71923ee5d..4767e9c2f92 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 @@ -88,6 +88,7 @@ import org.eclipse.cdt.debug.internal.core.sourcelookup.DisassemblyManager; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarkerDelta; import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; @@ -394,25 +395,36 @@ public class CDebugTarget extends CDebugElement private boolean isTargetBreakpoint( IBreakpoint bp ) { - IProject project = bp.getMarker().getResource().getProject(); - if ( project != null && project.exists() ) - { + IResource resource = bp.getMarker().getResource(); + if ( bp instanceof ICLineBreakpoint ) + { if ( getSourceLocator() instanceof IAdaptable ) { ICSourceLocator sl = (ICSourceLocator)((IAdaptable)getSourceLocator()).getAdapter( ICSourceLocator.class ); if ( sl != null ) - { - return sl.contains( project ); - } - } - else - { - if ( project.equals( getExecFile().getProject() ) ) - return true; - return CDebugUtils.isReferencedProject( getExecFile().getProject(), project ); + return sl.contains( resource ); } } - return false; + else + { + IProject project = resource.getProject(); + if ( project != null && project.exists() ) + { + if ( getSourceLocator() instanceof IAdaptable ) + { + ICSourceLocator sl = (ICSourceLocator)((IAdaptable)getSourceLocator()).getAdapter( ICSourceLocator.class ); + if ( sl != null ) + return sl.contains( project ); + } + else + { + if ( project.equals( getExecFile().getProject() ) ) + return true; + return CDebugUtils.isReferencedProject( getExecFile().getProject(), project ); + } + } + } + return true; } protected void initializeRegisters()