diff options
Diffstat (limited to 'launch/org.eclipse.cdt.launch')
3 files changed, 16 insertions, 3 deletions
diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java index 81d8e5c8e50..bbd07e3642d 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/AbstractCDebuggerTab.java @@ -145,7 +145,13 @@ public abstract class AbstractCDebuggerTab extends CLaunchConfigurationTab { if (debugConfig == null) { setDynamicTab(null); } else { - setDynamicTab(CDebugUIPlugin.getDefault().getDebuggerPage(debugConfig.getID())); + ILaunchConfigurationTab tab = null; + try { + tab = CDebugUIPlugin.getDefault().getDebuggerPage(debugConfig.getID()); + } catch (CoreException e) { + LaunchUIPlugin.errorDialog(LaunchUIPlugin.getResourceString("AbstractCDebuggerTab.ErrorLoadingDebuggerPage"), e.getStatus()); //$NON-NLS-1$ + } + setDynamicTab(tab); ICDebugConfiguration oldConfig = getDebugConfig(); if ( oldConfig != null && oldConfig != debugConfig ) { setInitializeDefault(true); diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPluginResources.properties b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPluginResources.properties index e5358b15e55..93846210882 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPluginResources.properties +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/ui/LaunchUIPluginResources.properties @@ -58,6 +58,7 @@ CApplicationLaunchShortcut.Launch_failed_no_project_selected=Launch failed no pr AbstractCDebuggerTab.No_debugger_available=No debugger available AbstractCDebuggerTab.Debugger=Debugger +AbstractCDebuggerTab.ErrorLoadingDebuggerPage=Error Loading Debugger UI Component. LaunchUIPlugin.Error=Error diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CDebuggerTab.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CDebuggerTab.java index 72d72815afb..4017ec4a55b 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CDebuggerTab.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/ui/CDebuggerTab.java @@ -46,6 +46,7 @@ public class CDebuggerTab extends AbstractCDebuggerTab { protected Button fVarBookKeeping; private final boolean DEFAULT_STOP_AT_MAIN = true; + private boolean pageUpdated; public void createControl(Composite parent) { GridData gd; @@ -177,14 +178,19 @@ public class CDebuggerTab extends AbstractCDebuggerTab { // if no selection meaning nothing in config the force initdefault on tab setInitializeDefault(selection.equals("") ? true : false); //$NON-NLS-1$ + pageUpdated = false; fDCombo.select(selndx == -1 ? 0 : selndx); //The behaviour is undefined for if the callbacks should be triggered for this, - //so to avoid unnecessary confusion, we force an update. - updateComboFromSelection(); + //so force page update if needed. + if (!pageUpdated) { + updateComboFromSelection(); + } + pageUpdated = false; getControl().getParent().layout(true); } protected void updateComboFromSelection() { + pageUpdated = true; handleDebuggerChanged(); ICDebugConfiguration debugConfig = getConfigForCurrentDebugger(); if (debugConfig != null) { |