diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDIConfiguration.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDIConfiguration.java index 3ae804dbb7e..5484caea971 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDIConfiguration.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/cdi/ICDIConfiguration.java @@ -83,6 +83,13 @@ public interface ICDIConfiguration */ boolean supportsRegisterModification(); + /** + * Returns whether this session supports shared library. + * + * @return whether this session supports registers modification + */ + boolean supportsSharedLibrary(); + /** * Returns whether this session supports memory retrieval. * diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CSession.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CSession.java index 049702e09e6..b22f7a490f8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CSession.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CSession.java @@ -185,12 +185,16 @@ public class CSession implements ICDISession, ICDISessionObject { } /** - * @see org.eclipse.cdt.debug.core.cdi.ICSuration() + * @see org.eclipse.cdt.debug.core.cdi.ICDISession#getConfiguration() */ public ICDIConfiguration getConfiguration() { return configuration; } + public void setConfiguration(ICDIConfiguration conf) { + configuration = conf; + } + /** * @see org.eclipse.cdt.debug.core.cdi.ICDISession#getRuntimeOptions() */ diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java index fff78bbfb1f..26a44f37c38 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/Configuration.java @@ -76,6 +76,13 @@ public class Configuration implements ICDIConfiguration { return true; } + /** + * @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsSharedLibrary() + */ + public boolean supportsSharedLibrary() { + return true; + } + /** * @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsRestart() */ diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java index 583874dc3c1..56e827fdbcc 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/CoreFileConfiguration.java @@ -65,4 +65,11 @@ public class CoreFileConfiguration implements ICDIConfiguration { return false; } + /** + * @see org.eclipse.cdt.debug.core.cdi.ICDIConfiguration#supportsSharedLibrary() + */ + public boolean supportsSharedLibrary() { + return false; + } + } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java index b105d618cd1..52716ac775b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/SharedLibraryManager.java @@ -10,6 +10,7 @@ import java.util.ArrayList; import java.util.List; import org.eclipse.cdt.debug.core.cdi.CDIException; +import org.eclipse.cdt.debug.core.cdi.ICDIConfiguration; import org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager; import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary; import org.eclipse.cdt.debug.mi.core.MIException; @@ -41,8 +42,13 @@ public class SharedLibraryManager extends SessionObject implements ICDISharedLib } public void update() throws CDIException { - MIShared[] miLibs = new MIShared[0]; CSession s = getCSession(); + ICDIConfiguration conf = s.getConfiguration(); + if (!conf.supportsSharedLibrary()) { + return; // Bail out early; + } + + MIShared[] miLibs = new MIShared[0]; CommandFactory factory = s.getMISession().getCommandFactory(); MIInfoSharedLibrary infoShared = factory.createMIInfoSharedLibrary(); try {