diff options
author | John Cortell | 2007-12-12 22:34:53 +0000 |
---|---|---|
committer | John Cortell | 2007-12-12 22:34:53 +0000 |
commit | ad701b9da6b2762c6a83b29cebd8716deb80c3ab (patch) | |
tree | 75c71f4cdb69a4a048e46cf685b5cde7a102081e /debug | |
parent | d5eb584400e9d4cdd823932d72600000ce5bd126 (diff) | |
download | org.eclipse.cdt-ad701b9da6b2762c6a83b29cebd8716deb80c3ab.tar.gz org.eclipse.cdt-ad701b9da6b2762c6a83b29cebd8716deb80c3ab.tar.xz org.eclipse.cdt-ad701b9da6b2762c6a83b29cebd8716deb80c3ab.zip |
211923. Make the memory space support in gdb/mi optional, via a global pref.
Diffstat (limited to 'debug')
5 files changed, 34 insertions, 4 deletions
diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java index 463fd8a9785..db67131ded2 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/model/Target.java @@ -50,8 +50,10 @@ import org.eclipse.cdt.debug.core.cdi.model.ICDITargetConfiguration; import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; import org.eclipse.cdt.debug.core.cdi.model.ICDIWatchpoint; import org.eclipse.cdt.debug.mi.core.CoreProcess; +import org.eclipse.cdt.debug.mi.core.IMIConstants; import org.eclipse.cdt.debug.mi.core.MIException; import org.eclipse.cdt.debug.mi.core.MIInferior; +import org.eclipse.cdt.debug.mi.core.MIPlugin; import org.eclipse.cdt.debug.mi.core.MISession; import org.eclipse.cdt.debug.mi.core.RxThread; import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager; @@ -1288,6 +1290,11 @@ public class Target extends SessionObject implements ICDITarget, ICDIBreakpointM } public String[] getMemorySpaces() { - return new String[] { CODE_MEMORY_SPACE, DATA_MEMORY_SPACE }; + if (MIPlugin.getDefault().getPluginPreferences().getBoolean(IMIConstants.PREF_ENABLE_MEMORY_SPACES)) { + return new String[] { CODE_MEMORY_SPACE, DATA_MEMORY_SPACE }; + } + else { + return new String[0]; + } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/IMIConstants.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/IMIConstants.java index ffd7ed651eb..a7de1d7daec 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/IMIConstants.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/IMIConstants.java @@ -63,4 +63,18 @@ public interface IMIConstants * The default value of the for <code>PREF_SHARED_LIBRARIES_AUTO_REFRESH</code> property */ public static final boolean DEF_PREF_SHARED_LIBRARIES_AUTO_REFRESH = true; + + /** + * Boolean preference controlling whether memory spaces will be supported. + * gdb has implicit awareness of two memory spaces: "code" and "data". Most + * users don't need that capability, though, and so we expose it in the UI + * only if the user turns it on. + */ + public static final String PREF_ENABLE_MEMORY_SPACES = PLUGIN_ID + ".PREF_ENABLE_MEMORY_SPACES"; //$NON-NLS-1$ + + /** + * The default value of the for <code>PREF_ENABLE_MEMORY_SPACES</code> property + */ + public static final boolean DEF_PREF_ENABLE_MEMORY_SPACES = false; } + diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPreferenceInitializer.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPreferenceInitializer.java index 9ac45d2d385..54ca15a8b27 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPreferenceInitializer.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIPreferenceInitializer.java @@ -28,5 +28,6 @@ public class MIPreferenceInitializer extends AbstractPreferenceInitializer { MIPlugin.getDefault().getPluginPreferences().setDefault(IMIConstants.PREF_REQUEST_TIMEOUT, IMIConstants.DEF_REQUEST_TIMEOUT); MIPlugin.getDefault().getPluginPreferences().setDefault(IMIConstants.PREF_REQUEST_LAUNCH_TIMEOUT, IMIConstants.DEF_REQUEST_LAUNCH_TIMEOUT); MIPlugin.getDefault().getPluginPreferences().setDefault(IMIConstants.PREF_SHARED_LIBRARIES_AUTO_REFRESH, IMIConstants.DEF_PREF_SHARED_LIBRARIES_AUTO_REFRESH); + MIPlugin.getDefault().getPluginPreferences().setDefault(IMIConstants.PREF_ENABLE_MEMORY_SPACES, IMIConstants.DEF_PREF_ENABLE_MEMORY_SPACES); } } diff --git a/debug/org.eclipse.cdt.debug.mi.ui/src/org/eclipse/cdt/debug/mi/internal/ui/preferences/MIPreferencePage.java b/debug/org.eclipse.cdt.debug.mi.ui/src/org/eclipse/cdt/debug/mi/internal/ui/preferences/MIPreferencePage.java index d57a4a4c633..355ade608e9 100644 --- a/debug/org.eclipse.cdt.debug.mi.ui/src/org/eclipse/cdt/debug/mi/internal/ui/preferences/MIPreferencePage.java +++ b/debug/org.eclipse.cdt.debug.mi.ui/src/org/eclipse/cdt/debug/mi/internal/ui/preferences/MIPreferencePage.java @@ -326,6 +326,8 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer private MIIntegerFieldEditor fLaunchTimeoutText; private BooleanFieldEditor fRefreshSolibsButton; + + private BooleanFieldEditor fMemorySpacesButton; private MIPreferenceStore fMICorePreferenceStore = new MIPreferenceStore( MIPlugin.getDefault().getPluginPreferences() ); @@ -358,6 +360,8 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer composite.setLayoutData( data ); createSpacer( composite, 1 ); createCommunicationPreferences( composite ); + createSpacer( composite, 1 ); + fMemorySpacesButton = createCheckbox(IMIConstants.PREF_ENABLE_MEMORY_SPACES, PreferenceMessages.getString( "MIPreferencePage.7" ), composite ); //$NON-NLS-1$ return composite; } @@ -398,6 +402,7 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer fDebugTimeoutText.loadDefault(); fLaunchTimeoutText.loadDefault(); fRefreshSolibsButton.loadDefault(); + fMemorySpacesButton.loadDefault(); } /* @@ -429,7 +434,7 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer fDebugTimeoutText.setPropertyChangeListener( this ); fLaunchTimeoutText = createTimeoutField( IMIConstants.PREF_REQUEST_LAUNCH_TIMEOUT, PreferenceMessages.getString( "MIPreferencePage.3" ), spacingComposite ); //$NON-NLS-1$ fLaunchTimeoutText.setPropertyChangeListener( this ); - fRefreshSolibsButton = createRefreshField( IMIConstants.PREF_SHARED_LIBRARIES_AUTO_REFRESH, PreferenceMessages.getString( "MIPreferencePage.6" ), spacingComposite ); //$NON-NLS-1$ + fRefreshSolibsButton = createCheckbox( IMIConstants.PREF_SHARED_LIBRARIES_AUTO_REFRESH, PreferenceMessages.getString( "MIPreferencePage.6" ), spacingComposite ); //$NON-NLS-1$ } /** @@ -439,6 +444,7 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer fDebugTimeoutText.store(); fLaunchTimeoutText.store(); fRefreshSolibsButton.store(); + fMemorySpacesButton.store(); } private MIIntegerFieldEditor createTimeoutField( String preference, String label, Composite parent ) { @@ -457,14 +463,14 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer return toText; } - private BooleanFieldEditor createRefreshField( String preference, String label, Composite parent ) { + private BooleanFieldEditor createCheckbox( String preference, String label, Composite parent ) { BooleanFieldEditor field = new BooleanFieldEditor( preference, label, parent ); field.setPage( this ); field.setPreferenceStore( new MIPreferenceStore( MIPlugin.getDefault().getPluginPreferences() ) ); field.load(); return field; } - + protected MIPreferenceStore getMICorePreferenceStore() { return fMICorePreferenceStore; } @@ -476,6 +482,7 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer fDebugTimeoutText.dispose(); fLaunchTimeoutText.dispose(); fRefreshSolibsButton.dispose(); + fMemorySpacesButton.dispose(); super.dispose(); } diff --git a/debug/org.eclipse.cdt.debug.mi.ui/src/org/eclipse/cdt/debug/mi/internal/ui/preferences/PreferenceMessages.properties b/debug/org.eclipse.cdt.debug.mi.ui/src/org/eclipse/cdt/debug/mi/internal/ui/preferences/PreferenceMessages.properties index a9226116464..23166c2555a 100644 --- a/debug/org.eclipse.cdt.debug.mi.ui/src/org/eclipse/cdt/debug/mi/internal/ui/preferences/PreferenceMessages.properties +++ b/debug/org.eclipse.cdt.debug.mi.ui/src/org/eclipse/cdt/debug/mi/internal/ui/preferences/PreferenceMessages.properties @@ -16,3 +16,4 @@ MIPreferencePage.2=&Debugger timeout (ms): MIPreferencePage.3=&Launch timeout (ms): MIPreferencePage.4=Value must be an integer between {0} and {1}. MIPreferencePage.6=Automatically refresh modules +MIPreferencePage.7=Distinct code and data memory spaces |