diff options
Diffstat (limited to 'cross/org.eclipse.cdt.launch.remote')
6 files changed, 3 insertions, 540 deletions
diff --git a/cross/org.eclipse.cdt.launch.remote/META-INF/MANIFEST.MF b/cross/org.eclipse.cdt.launch.remote/META-INF/MANIFEST.MF index be986389d68..f0a07fc5c49 100644 --- a/cross/org.eclipse.cdt.launch.remote/META-INF/MANIFEST.MF +++ b/cross/org.eclipse.cdt.launch.remote/META-INF/MANIFEST.MF @@ -11,7 +11,6 @@ Require-Bundle: org.eclipse.rse.ui;bundle-version="[3.0.0,4.0.0)", org.eclipse.rse.core;bundle-version="[3.0.0,4.0.0)", org.eclipse.rse.services;bundle-version="[3.0.0,4.0.0)", org.eclipse.cdt.launch, - org.eclipse.cdt.debug.mi.core, org.eclipse.cdt.debug.core, org.eclipse.cdt.core, org.eclipse.debug.ui, @@ -19,7 +18,6 @@ Require-Bundle: org.eclipse.rse.ui;bundle-version="[3.0.0,4.0.0)", org.eclipse.debug.core, org.eclipse.core.resources, org.eclipse.core.runtime, - org.eclipse.cdt.debug.mi.ui, org.eclipse.cdt.debug.ui, org.eclipse.rse.files.ui;bundle-version="[3.0.0,4.0.0)", org.eclipse.cdt.dsf.gdb;bundle-version="3.0.0", diff --git a/cross/org.eclipse.cdt.launch.remote/plugin.xml b/cross/org.eclipse.cdt.launch.remote/plugin.xml index 21bf2341093..ded8010be4c 100644 --- a/cross/org.eclipse.cdt.launch.remote/plugin.xml +++ b/cross/org.eclipse.cdt.launch.remote/plugin.xml @@ -18,7 +18,7 @@ Anna Dushistova (Mentor Graphics) - code restructuring <launchDelegate id="org.eclipse.rse.remotecdt.launch" type="org.eclipse.cdt.launch.remoteApplicationLaunchType" - modes="run,debug" + modes="run" delegate="org.eclipse.cdt.launch.remote.launching.RemoteRunLaunchDelegate" name="%cdiLaunchDelegate.name" delegateDescription="%cdiLaunchDelegate.description" @@ -83,14 +83,6 @@ Anna Dushistova (Mentor Graphics) - code restructuring <associatedDelegate delegate="org.eclipse.rse.remotecdt.dsf.debug"/> <placement after="org.eclipse.cdt.launch.remote.dsf.mainTab"/> </tab> - <tab - id="org.eclipse.rse.remotecdt.launch.RemoteCDebuggerTab" - group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup" - name="Debugger" - class="org.eclipse.cdt.launch.remote.tabs.RemoteCDebuggerTab"> - <associatedDelegate delegate="org.eclipse.rse.remotecdt.launch"/> - <placement after="org.eclipse.cdt.cdi.launch.argumentsTab"/> - </tab> <tab id="org.eclipse.rse.remotecdt.dsf.debug.RemoteCDSFDebuggerTab" group="org.eclipse.cdt.launch.remoteApplicationLaunchTabGroup" name="Debugger" @@ -141,27 +133,6 @@ Anna Dushistova (Mentor Graphics) - code restructuring </extension> - - <extension - point="org.eclipse.cdt.debug.core.CDebugger"> - <debugger - class="org.eclipse.cdt.debug.mi.core.GDBServerCDIDebugger2" - cpu="*" - id="org.eclipse.rse.remotecdt.RemoteGDBDebugger" - modes="run" - name="remote gdb/mi" - platform="*"> - </debugger> - </extension> - <extension - point="org.eclipse.cdt.debug.ui.CDebuggerPage"> - <debuggerPage - class="org.eclipse.cdt.launch.remote.tabs.RemoteGDBDebuggerPage" - debuggerID="org.eclipse.rse.remotecdt.RemoteGDBDebugger" - id="org.eclipse.rse.remotecdt.RemoteGDBDebuggerPage"> - </debuggerPage> - </extension> - <!-- ============================================ --> <!-- Define Help Context --> <!-- ============================================ --> diff --git a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/IRemoteConnectionConfigurationConstants.java b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/IRemoteConnectionConfigurationConstants.java index 9758edcee50..b349bf4dfe5 100644 --- a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/IRemoteConnectionConfigurationConstants.java +++ b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/IRemoteConnectionConfigurationConstants.java @@ -13,11 +13,9 @@ package org.eclipse.cdt.launch.remote; -import org.eclipse.cdt.debug.mi.core.IGDBServerMILaunchConfigurationConstants; import org.eclipse.debug.core.DebugPlugin; -public interface IRemoteConnectionConfigurationConstants extends - IGDBServerMILaunchConfigurationConstants { +public interface IRemoteConnectionConfigurationConstants { public static final String ATTR_REMOTE_CONNECTION = DebugPlugin.getUniqueIdentifier() + ".REMOTE_TCP"; //$NON-NLS-1$ diff --git a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteRunLaunchDelegate.java b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteRunLaunchDelegate.java index c5bed1b11f5..5643b4d394c 100644 --- a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteRunLaunchDelegate.java +++ b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteRunLaunchDelegate.java @@ -26,15 +26,7 @@ package org.eclipse.cdt.launch.remote.launching; import org.eclipse.cdt.core.IBinaryParser.IBinaryObject; import org.eclipse.cdt.core.model.ICProject; -import org.eclipse.cdt.debug.core.CDIDebugModel; import org.eclipse.cdt.debug.core.CDebugUtils; -import org.eclipse.cdt.debug.core.ICDIDebugger2; -import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; -import org.eclipse.cdt.debug.core.cdi.CDIException; -import org.eclipse.cdt.debug.core.cdi.ICDISession; -import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; -import org.eclipse.cdt.debug.mi.core.GDBServerCDIDebugger2; -import org.eclipse.cdt.debug.mi.core.IGDBServerMILaunchConfigurationConstants; import org.eclipse.cdt.internal.launch.remote.Activator; import org.eclipse.cdt.internal.launch.remote.Messages; import org.eclipse.cdt.launch.AbstractCLaunchDelegate; @@ -50,26 +42,12 @@ import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; -import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.core.ILaunchManager; -import org.eclipse.debug.core.model.IProcess; import org.eclipse.osgi.util.NLS; import org.eclipse.rse.core.RSECorePlugin; -import org.eclipse.rse.services.shells.HostShellProcessAdapter; -import org.eclipse.rse.services.shells.IHostOutput; -import org.eclipse.rse.services.shells.IHostShell; -import org.eclipse.rse.services.shells.IHostShellChangeEvent; -import org.eclipse.rse.services.shells.IHostShellOutputListener; public class RemoteRunLaunchDelegate extends AbstractCLaunchDelegate { - private ICDISession dsession; - - /* - * (non-Javadoc) - * - * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch - */ @Override public void launch(ILaunchConfiguration config, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { @@ -102,200 +80,8 @@ public class RemoteRunLaunchDelegate extends AbstractCLaunchDelegate { e)); } } - if (mode.equals(ILaunchManager.DEBUG_MODE)) { - monitor.beginTask(Messages.RemoteRunLaunchDelegate_0, 100); - setDefaultSourceLocator(launch, config); - String debugMode = config - .getAttribute( - ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_START_MODE, - ICDTLaunchConfigurationConstants.DEBUGGER_MODE_RUN); - if (debugMode - .equals(ICDTLaunchConfigurationConstants.DEBUGGER_MODE_RUN)) { - Process remoteShellProcess = null; - dsession = null; - try { - // Download the binary to the remote before debugging. - monitor.setTaskName(Messages.RemoteRunLaunchDelegate_2); - RSEHelper.remoteFileDownload(config, launch, exePath.toString(), - remoteExePath, new SubProgressMonitor(monitor, - 80)); - - // Automatically start up the gdbserver. In the future - // this should be expanded to launch - // an arbitrary remote daemon. - String gdbserver_port_number = config - .getAttribute( - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT_DEFAULT); - String gdbserver_command = config - .getAttribute( - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND_DEFAULT); - String gdbserver_options = config - .getAttribute( - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_OPTIONS, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_OPTIONS_DEFAULT); - String command_arguments = gdbserver_options + " " //$NON-NLS-1$ - + ":" + gdbserver_port_number + " " //$NON-NLS-1$ //$NON-NLS-2$ - + RSEHelper.spaceEscapify(remoteExePath); - if (arguments != null && !arguments.equals("")) //$NON-NLS-1$ - command_arguments += " " + arguments; //$NON-NLS-1$ - monitor.setTaskName(Messages.RemoteRunLaunchDelegate_9); - IHostShell remoteShell = null; - try { - remoteShell = RSEHelper.execCmdInRemoteShell(config, prelaunchCmd, - gdbserver_command, command_arguments, - new SubProgressMonitor(monitor, 5)); - } catch (Exception e1) { - RSEHelper.abort(e1.getMessage(), e1, - ICDTLaunchConfigurationConstants.ERR_INTERNAL_ERROR); - } - - // We cannot use a global variable because multiple launches - // could access them at the same time. We need a different - // variable for each launch, but we also need it be final. - // Use a final array to do that. - final boolean gdbServerReady[] = new boolean[1]; - gdbServerReady[0] = false; - - final Object lock = new Object(); - if (remoteShell != null) { - remoteShell - .addOutputListener(new IHostShellOutputListener() { - - public void shellOutputChanged( - IHostShellChangeEvent event) { - for (IHostOutput line : event - .getLines()) { - if (line.getString().contains( - "Listening on port")) { //$NON-NLS-1$ - synchronized (lock) { - gdbServerReady[0] = true; - lock.notifyAll(); - } - break; - } - } - } - }); - - try { - remoteShellProcess = new HostShellProcessAdapter(remoteShell) { - - @Override - public synchronized void destroy() { - ICDISession session = getSession(); - if (session != null) { - try { - session.terminate(); - } catch (CDIException e) { - } - } - super.destroy(); - } - }; - } catch (Exception e) { - if (remoteShellProcess != null) { - remoteShellProcess.destroy(); - } - RSEHelper.abort(Messages.RemoteRunLaunchDelegate_7, e, - ICDTLaunchConfigurationConstants.ERR_INTERNAL_ERROR); - } - IProcess rsProcess = DebugPlugin - .newProcess( - launch, - remoteShellProcess, - Messages.RemoteRunLaunchDelegate_RemoteShell); - // Now wait until gdbserver is up and running on the - // remote host - synchronized (lock) { - while (gdbServerReady[0] == false) { - if (monitor.isCanceled() - || rsProcess.isTerminated()) { - RSEHelper.abort(Messages.RemoteGdbLaunchDelegate_gdbserverFailedToStartErrorMessage, null, - ICDTLaunchConfigurationConstants.ERR_DEBUGGER_NOT_INSTALLED); - } - try { - lock.wait(300); - } catch (InterruptedException e) { - } - } - } - - // Pre-set configuration constants for the - // GDBSERVERCDIDebugger to indicate how the gdbserver - // was automatically started on the remote. - // GDBServerCDIDebugger uses these to figure out how - // to connect to the remote gdbserver. - ILaunchConfigurationWorkingCopy wc = config - .getWorkingCopy(); - wc - .setAttribute( - IGDBServerMILaunchConfigurationConstants.ATTR_REMOTE_TCP, - true); - wc - .setAttribute( - IGDBServerMILaunchConfigurationConstants.ATTR_HOST, - RSEHelper.getRemoteHostname(config)); - wc - .setAttribute( - IGDBServerMILaunchConfigurationConstants.ATTR_PORT, - gdbserver_port_number); - wc.doSave(); - - // Default to using the GDBServerCDIDebugger. - GDBServerCDIDebugger2 debugger = new GDBServerCDIDebugger2(); - dsession = ((ICDIDebugger2) debugger).createSession( - launch, exePath.toFile(), - new SubProgressMonitor(monitor, 15)); - - boolean stopInMain = config - .getAttribute( - ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_STOP_AT_MAIN, - false); - String stopSymbol = null; - if (stopInMain) - stopSymbol = launch - .getLaunchConfiguration() - .getAttribute( - ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_STOP_AT_MAIN_SYMBOL, - ICDTLaunchConfigurationConstants.DEBUGGER_STOP_AT_MAIN_SYMBOL_DEFAULT); - - ICDITarget[] targets = dsession.getTargets(); - for (int i = 0; i < targets.length; i++) { - Process process = targets[i].getProcess(); - IProcess iprocess = null; - if (process != null) { - iprocess = DebugPlugin.newProcess(launch, - process, renderProcessLabel(exePath - .toOSString()), - getDefaultProcessMap()); - } - CDIDebugModel.newDebugTarget(launch, project - .getProject(), - targets[i], - renderProcessLabel("gdbserver debugger"), //$NON-NLS-1$ - iprocess, exeFile, true, false, stopSymbol, - true); - } - } - } catch (CoreException e) { - try { - if (dsession != null) - dsession.terminate(); - if (remoteShellProcess != null) - remoteShellProcess.destroy(); - } catch (CDIException e1) { - // ignore - } - throw e; - } finally { - monitor.done(); - } - } - - } else if (mode.equals(ILaunchManager.RUN_MODE)) { + if (mode.equals(ILaunchManager.RUN_MODE)) { monitor.beginTask(Messages.RemoteRunLaunchDelegate_0, 100); Process remoteProcess = null; try { @@ -329,8 +115,4 @@ public class RemoteRunLaunchDelegate extends AbstractCLaunchDelegate { protected String getPluginID() { return Activator.PLUGIN_ID; } - - ICDISession getSession(){ - return dsession; - } } diff --git a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDebuggerTab.java b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDebuggerTab.java deleted file mode 100644 index e90a1ef4728..00000000000 --- a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteCDebuggerTab.java +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2012 PalmSource, Inc. and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Ewa Matejska (PalmSource) - * Anna Dushistova (Mentor Graphics) - [314659] move remote launch/debug to DSF - * Anna Dushistova (Mentor Graphics) - moved to org.eclipse.cdt.launch.remote.tabs - *******************************************************************************/ - -package org.eclipse.cdt.launch.remote.tabs; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.cdt.debug.core.CDebugCorePlugin; -import org.eclipse.cdt.debug.core.ICDebugConfiguration; -import org.eclipse.cdt.launch.ui.CDebuggerTab; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.debug.core.ILaunchConfiguration; -import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.PlatformUI; - -public class RemoteCDebuggerTab extends CDebuggerTab { - - private final static String DEFAULTS_SET = "org.eclipse.cdt.launch.remote.RemoteCDSFDebuggerTab.DEFAULTS_SET"; //$NON-NLS-1$ - - public RemoteCDebuggerTab() { - super(false); - } - - @Override - public void createControl(Composite parent) { - super.createControl(parent); - PlatformUI - .getWorkbench() - .getHelpSystem() - .setHelp(getControl(), - "org.eclipse.rse.internal.remotecdt.launchgroup"); //$NON-NLS-1$ - } - - static final private String REMOTE_GDB_DEBUGGER_NAME = "remote gdb/mi"; //$NON-NLS-1$ - - public RemoteCDebuggerTab(boolean attachMode) { - super(attachMode); - } - - @Override - protected void loadDebuggerComboBox(ILaunchConfiguration config, - String selection) { - ICDebugConfiguration[] debugConfigs = CDebugCorePlugin.getDefault() - .getDebugConfigurations(); - String defaultSelection = selection; - List list = new ArrayList(); - for (int i = 0; i < debugConfigs.length; i++) { - ICDebugConfiguration configuration = debugConfigs[i]; - if (configuration.getName().equals(REMOTE_GDB_DEBUGGER_NAME)) { - list.add(configuration); - // Select as default selection - defaultSelection = configuration.getID(); - break; - } - } - setInitializeDefault(defaultSelection.equals("") ? true : false); //$NON-NLS-1$ - loadDebuggerCombo( - (ICDebugConfiguration[]) list.toArray(new ICDebugConfiguration[list - .size()]), defaultSelection); - } - - @Override - public String getId() { - return "org.eclipse.rse.remotecdt.launch.RemoteCDebuggerTab"; //$NON-NLS-1$ - } - - /* - * When the launch configuration is created for Run mode, this Debugger tab - * is not created because it is not used for Run mode but only for Debug - * mode. When we then open the same configuration in Debug mode, the launch - * configuration already exists and initializeFrom() is called instead of - * setDefaults(). We therefore call setDefaults() ourselves and update the - * configuration. If we don't then the user will be required to press Apply - * to get the default settings saved. Bug 281970 - */ - @Override - public void setDefaults(ILaunchConfigurationWorkingCopy config) { - config.setAttribute(DEFAULTS_SET, true); - super.setDefaults(config); - } - - @Override - public void initializeFrom(ILaunchConfiguration config) { - try { - if (config.hasAttribute(DEFAULTS_SET) == false) { - ILaunchConfigurationWorkingCopy wc; - wc = config.getWorkingCopy(); - setDefaults(wc); - wc.doSave(); - } - } catch (CoreException e) { - } - super.initializeFrom(config); - } - -} diff --git a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteGDBDebuggerPage.java b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteGDBDebuggerPage.java deleted file mode 100644 index 1aba2e8a4c0..00000000000 --- a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/tabs/RemoteGDBDebuggerPage.java +++ /dev/null @@ -1,178 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2016 PalmSource, Inc. and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Ewa Matejska (PalmSource) - * - * Referenced GDBDebuggerPage code to write this. - * Anna Dushistova (Mentor Graphics) - moved to org.eclipse.cdt.launch.remote.tabs - *******************************************************************************/ - -package org.eclipse.cdt.launch.remote.tabs; - -import org.eclipse.cdt.debug.mi.internal.ui.GDBDebuggerPage; -import org.eclipse.cdt.internal.launch.remote.Messages; -import org.eclipse.cdt.launch.remote.IRemoteConnectionConfigurationConstants; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.debug.core.ILaunchConfiguration; -import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.TabFolder; -import org.eclipse.swt.widgets.TabItem; -import org.eclipse.swt.widgets.Text; - -/** - * The dynamic debugger tab for remote launches using gdb server. - * The gdbserver settings are used to start a gdbserver session on the - * remote and then to connect to it from the host. The DSDP-TM project is - * used to accomplish this. - */ -public class RemoteGDBDebuggerPage extends GDBDebuggerPage { - - protected Text fGDBServerCommandText; - - protected Text fGDBServerPortNumberText; - - protected Text fGDBServerOptionsText; - - @Override - public String getName() { - return Messages.Remote_GDB_Debugger_Options; - } - - @Override - public void setDefaults( ILaunchConfigurationWorkingCopy configuration ) { - super.setDefaults(configuration); - configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND_DEFAULT ); - configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT_DEFAULT ); - configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_OPTIONS, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_OPTIONS_DEFAULT ); - } - - @Override - public void initializeFrom( ILaunchConfiguration configuration ) { - super.initializeFrom(configuration); - String gdbserverCommand = null; - String gdbserverPortNumber = null; - String gdbserverOptions = null; - try { - gdbserverCommand = configuration.getAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND_DEFAULT); - } - catch( CoreException e ) { - } - try { - gdbserverPortNumber = configuration.getAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT_DEFAULT ); - } - catch( CoreException e ) { - } - try { - gdbserverOptions = configuration.getAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_OPTIONS, - IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_OPTIONS_DEFAULT ); - } - catch( CoreException e ) { - } - fGDBServerCommandText.setText( gdbserverCommand ); - fGDBServerPortNumberText.setText( gdbserverPortNumber ); - fGDBServerOptionsText.setText( gdbserverOptions ); - } - - @Override - public void performApply( ILaunchConfigurationWorkingCopy configuration ) { - super.performApply(configuration); - String str = fGDBServerCommandText.getText(); - str.trim(); - configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_COMMAND, str ); - str = fGDBServerPortNumberText.getText(); - str.trim(); - configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_PORT, str ); - str = fGDBServerOptionsText.getText(); - str.trim(); - configuration.setAttribute( IRemoteConnectionConfigurationConstants.ATTR_GDBSERVER_OPTIONS, str ); - } - - protected void createGdbserverSettingsTab( TabFolder tabFolder ) { - TabItem tabItem = new TabItem( tabFolder, SWT.NONE ); - tabItem.setText( Messages.Gdbserver_Settings_Tab_Name ); - - Composite comp = new Composite(tabFolder, SWT.NULL); - comp.setLayout(new GridLayout(1, true)); - comp.setLayoutData(new GridData(GridData.FILL_BOTH)); - ((GridLayout)comp.getLayout()).makeColumnsEqualWidth = false; - comp.setFont( tabFolder.getFont() ); - tabItem.setControl( comp ); - - Composite subComp = new Composite(comp, SWT.NULL); - subComp.setLayout(new GridLayout(2, true)); - subComp.setLayoutData(new GridData(GridData.FILL_BOTH)); - ((GridLayout)subComp.getLayout()).makeColumnsEqualWidth = false; - subComp.setFont( tabFolder.getFont() ); - - Label label = new Label(subComp, SWT.LEFT); - label.setText(Messages.Gdbserver_name_textfield_label); - GridData gd = new GridData(); - label.setLayoutData( gd ); - - - fGDBServerCommandText = new Text(subComp, SWT.SINGLE | SWT.BORDER); - GridData data = new GridData(SWT.FILL, SWT.TOP, true, false); - fGDBServerCommandText.setLayoutData(data); - fGDBServerCommandText.addModifyListener( new ModifyListener() { - - public void modifyText( ModifyEvent evt ) { - updateLaunchConfigurationDialog(); - } - } ); - label = new Label(subComp, SWT.LEFT); - label.setText(Messages.Port_number_textfield_label); - gd = new GridData(); - label.setLayoutData( gd ); - - fGDBServerPortNumberText = new Text(subComp, SWT.SINGLE | SWT.BORDER); - data = new GridData(SWT.FILL, SWT.TOP, true, false); - fGDBServerPortNumberText.setLayoutData(data); - fGDBServerPortNumberText.addModifyListener( new ModifyListener() { - - public void modifyText( ModifyEvent evt ) { - updateLaunchConfigurationDialog(); - } - } ); - label = new Label(subComp, SWT.LEFT); - label.setText(Messages.Gdbserver_options_textfield_label); - gd = new GridData(); - label.setLayoutData( gd ); - - fGDBServerOptionsText = new Text(subComp, SWT.SINGLE | SWT.BORDER); - data = new GridData(SWT.FILL, SWT.TOP, true, false); - fGDBServerOptionsText.setLayoutData(data); - fGDBServerOptionsText.addModifyListener( new ModifyListener() { - - public void modifyText( ModifyEvent evt ) { - updateLaunchConfigurationDialog(); - } - } ); - } - - /* (non-Javadoc) - * @see org.eclipse.cdt.debug.mi.internal.ui.GDBDebuggerPage#createTabs(org.eclipse.swt.widgets.TabFolder) - */ - @Override - public void createTabs( TabFolder tabFolder ) { - super.createTabs( tabFolder ); - createGdbserverSettingsTab( tabFolder ); - } -} - |