From 8517a2d791998d0b766d6278763416de9625ccb6 Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Mon, 28 Jul 2008 15:03:30 +0000 Subject: [PATCH] - fixed resolving source location when debugger returns resolved path itself and absolute path container not in the list --- .../core/sourcelookup/CSourceLookupParticipant.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourceLookupParticipant.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourceLookupParticipant.java index 1acfac24a5e..76270d05625 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourceLookupParticipant.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/CSourceLookupParticipant.java @@ -13,7 +13,10 @@ *******************************************************************************/ package org.eclipse.cdt.debug.internal.core.sourcelookup; +import java.io.File; + import org.eclipse.cdt.debug.core.model.ICStackFrame; +import org.eclipse.cdt.debug.core.sourcelookup.AbsolutePathSourceContainer; import org.eclipse.cdt.debug.core.sourcelookup.ISourceLookupChangeListener; import org.eclipse.cdt.debug.internal.core.ListenerList; import org.eclipse.core.runtime.CoreException; @@ -82,8 +85,14 @@ public class CSourceLookupParticipant extends AbstractSourceLookupParticipant { name = (String)object; } Object[] foundElements = super.findSourceElements( object ); - if (foundElements.length == 0 && (object instanceof IDebugElement)) - foundElements = new Object[] { new CSourceNotFoundElement( (IDebugElement) object ) }; + if (foundElements.length == 0 && (object instanceof IDebugElement)) { + // debugger could have resolved it itself and "name" is an absolute path + if (new File(name).exists()) { + foundElements = new AbsolutePathSourceContainer().findSourceElements(name); + } else { + foundElements = new Object[] { new CSourceNotFoundElement((IDebugElement) object) }; + } + } return foundElements; }