diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsole.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsole.java
index 46233f7ab29..105e16fc195 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsole.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsole.java
@@ -69,7 +69,7 @@ public class GdbBasicCliConsole extends IOConsole implements IGDBDebuggerConsole
};
public GdbBasicCliConsole(ILaunch launch, String label, Process process) {
- super("", null, null, false); //$NON-NLS-1$
+ super("", "GdbBasicCliConsole", null, false); //$NON-NLS-1$ //$NON-NLS-2$
fLaunch = launch;
fLabel = label;
fProcess = process;
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsolePage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsolePage.java
index dc0e4785123..71e51083fd4 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsolePage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbBasicCliConsolePage.java
@@ -20,9 +20,20 @@ import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.console.IConsoleView;
import org.eclipse.ui.internal.console.IOConsolePage;
+/**
+ * Page used for a basic GDB console. Each Debug session which uses the basic GDB console will
+ * use its own instance of this page. The basic console is used for older GDB versions.
+ *
+ * Contributions to this page's context menu can be done using id "GdbBasicCliConsole.#ContextMenu".
+ * For example, using the extension point:
+ *
+ * menuContribution locationURI="popup:GdbBasicCliConsole.#ContextMenu?after=additions"
+ *
+ */
@SuppressWarnings("restriction")
public class GdbBasicCliConsolePage extends IOConsolePage implements IDebugContextListener {
@@ -67,6 +78,10 @@ public class GdbBasicCliConsolePage extends IOConsolePage implements IDebugConte
protected void contextMenuAboutToShow(IMenuManager menuManager) {
menuManager.add(fTerminateLaunchAction);
menuManager.add(new Separator());
+
+ // Other plug-ins can contribute there actions here
+ menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+
menuManager.add(fShowPreferencePageAction);
}
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java
index b83af80eedc..81b0c7bd2ac 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/console/GdbFullCliConsolePage.java
@@ -46,8 +46,19 @@ import org.eclipse.tm.internal.terminal.control.TerminalViewControlFactory;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
+import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.part.Page;
+/**
+ * Page used for a full GDB console. Each Debug session which uses the full GDB console will
+ * use its own instance of this page. GDB 7.12 is required to use the full GDB console.
+ *
+ * Contributions to this page's context menu can be done using id "GdbFullCliConsole.#ContextMenu".
+ * For example, using the extension point:
+ *
+ * menuContribution locationURI="popup:GdbFullCliConsole.#ContextMenu?after=additions"
+ *
+ */
public class GdbFullCliConsolePage extends Page implements IDebugContextListener {
private final ILaunch fLaunch;
@@ -177,7 +188,10 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
}
protected void createContextMenu() {
- fMenuManager = new MenuManager();
+ // Choose the id to be similar in format to what
+ // the GdbBasicCliConsole has as id, for consistency
+ String id = "GdbFullCliConsole.#ContextMenu"; //$NON-NLS-1$
+ fMenuManager = new MenuManager(id, id);
fMenuManager.setRemoveAllWhenShown(true);
fMenuManager.addMenuListener((menuManager) -> { contextMenuAboutToShow(menuManager); });
Menu menu = fMenuManager.createContextMenu(fTerminalControl.getControl());
@@ -185,7 +199,7 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
createActions();
- getSite().registerContextMenu(null, fMenuManager, getSite().getSelectionProvider());
+ getSite().registerContextMenu(id, fMenuManager, getSite().getSelectionProvider());
}
protected void createActions() {
@@ -220,6 +234,9 @@ public class GdbFullCliConsolePage extends Page implements IDebugContextListener
menuManager.add(fTerminateLaunchAction);
menuManager.add(fAutoTerminateAction);
menuManager.add(new Separator());
+
+ // Other plug-ins can contribute their actions here
+ menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
menuManager.add(fShowPreferencePageAction);
}
diff --git a/dsf-gdb/org.eclipse.cdt.examples.dsf.gdb/plugin.xml b/dsf-gdb/org.eclipse.cdt.examples.dsf.gdb/plugin.xml
index 48784e99f4f..5dcafe3f209 100644
--- a/dsf-gdb/org.eclipse.cdt.examples.dsf.gdb/plugin.xml
+++ b/dsf-gdb/org.eclipse.cdt.examples.dsf.gdb/plugin.xml
@@ -180,6 +180,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+