Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 167065 Details for
Bug 310304
[launch][cdi] GDB (DSF) Hardware Debugging Launcher ignores application program path
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Prototype support for the Startup changes I proposed (CDI only)
patch_jtag_prototype_cdi_only (text/plain), 39.49 KB, created by
John Cortell
on 2010-05-04 19:31:46 EDT
(
hide
)
Description:
Prototype support for the Startup changes I proposed (CDI only)
Filename:
MIME Type:
Creator:
John Cortell
Created:
2010-05-04 19:31:46 EDT
Size:
39.49 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.cdt.debug.gdbjtag.core >Index: src/org/eclipse/cdt/debug/gdbjtag/core/GDBJtagDebugger.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/GDBJtagDebugger.java,v >retrieving revision 1.7 >diff -u -r1.7 GDBJtagDebugger.java >--- src/org/eclipse/cdt/debug/gdbjtag/core/GDBJtagDebugger.java 22 Apr 2010 22:46:49 -0000 1.7 >+++ src/org/eclipse/cdt/debug/gdbjtag/core/GDBJtagDebugger.java 4 May 2010 23:24:33 -0000 >@@ -18,7 +18,9 @@ > import java.util.List; > > import org.eclipse.cdt.core.IBinaryParser.IBinaryObject; >+import org.eclipse.cdt.core.model.ICProject; > import org.eclipse.cdt.debug.core.CDebugCorePlugin; >+import org.eclipse.cdt.debug.core.CDebugUtils; > import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; > import org.eclipse.cdt.debug.core.cdi.ICDISession; > import org.eclipse.cdt.debug.core.cdi.model.ICDITarget; >@@ -35,7 +37,9 @@ > import org.eclipse.cdt.debug.mi.core.command.CommandFactory; > import org.eclipse.cdt.debug.mi.core.command.MIGDBSetNewConsole; > import org.eclipse.cdt.debug.mi.core.output.MIInfo; >+import org.eclipse.core.resources.IFile; > import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IPath; > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.MultiStatus; >@@ -115,6 +119,41 @@ > if (submonitor.isCanceled()) { > throw new OperationCanceledException(); > } >+ >+ // execute symbol load >+ boolean doLoadSymbols = config.getAttribute(IGDBJtagConstants.ATTR_LOAD_SYMBOLS, IGDBJtagConstants.DEFAULT_LOAD_SYMBOLS); >+ if (doLoadSymbols) { >+ String symbolsFileName = null; >+ if (config.getAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_SYMBOLS, IGDBJtagConstants.DEFAULT_USE_PROJ_BINARY_FOR_SYMBOLS)) { >+ IPath programFile = getProgramFile(config); >+ if (programFile != null) { >+ symbolsFileName = programFile.toOSString(); >+ } >+ } >+ else { >+ symbolsFileName = config.getAttribute(IGDBJtagConstants.ATTR_IMAGE_FILE_NAME, IGDBJtagConstants.DEFAULT_IMAGE_FILE_NAME); >+ if (symbolsFileName.length() > 0) { >+ monitor.beginTask(Messages.getString("GDBJtagDebugger.5"), 1); //$NON-NLS-1$ >+ symbolsFileName = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(symbolsFileName); >+ } >+ } >+ if (symbolsFileName == null) { >+ throw new CoreException(new Status( IStatus.ERROR, >+ Activator.getUniqueIdentifier(), >+ -1, "symbols file not specified", null)); >+ } >+ >+ symbolsFileName = symbolsFileName.replace("\\", "\\\\"); >+ >+ String symbolsOffset = config.getAttribute(IGDBJtagConstants.ATTR_SYMBOLS_OFFSET, IGDBJtagConstants.DEFAULT_SYMBOLS_OFFSET); >+ if (symbolsOffset.length() > 0) { >+ symbolsOffset = "0x" + symbolsOffset; >+ } >+ commands.clear(); >+ gdbJtagDevice.doLoadSymbol(symbolsFileName, symbolsOffset, commands); >+ executeGDBScript(getGDBScript(commands), miSession, submonitor.newChild(15)); >+ } >+ > boolean useRemote = config.getAttribute(IGDBJtagConstants.ATTR_USE_REMOTE_TARGET, IGDBJtagConstants.DEFAULT_USE_REMOTE_TARGET); > if (useRemote) { > submonitor.subTask(Messages.getString("GDBJtagDebugger.2")); //$NON-NLS-1$ >@@ -155,31 +194,35 @@ > // execute load > boolean doLoad = config.getAttribute(IGDBJtagConstants.ATTR_LOAD_IMAGE, IGDBJtagConstants.DEFAULT_LOAD_IMAGE); > if (doLoad) { >- // Escape windows path separator characters TWICE, once for Java and once for GDB. >- String imageFileName = config.getAttribute(IGDBJtagConstants.ATTR_IMAGE_FILE_NAME, ""); //$NON-NLS-1$ >- if (imageFileName.length() > 0) { >- monitor.beginTask(Messages.getString("GDBJtagDebugger.5"), 1); //$NON-NLS-1$ >- imageFileName = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(imageFileName).replace("\\", "\\\\"); >- String imageOffset = (imageFileName.endsWith(".elf")) ? "" : "0x" + config.getAttribute(IGDBJtagConstants.ATTR_IMAGE_OFFSET, ""); //$NON-NLS-2$ //$NON-NLS-4$ >- commands.clear(); >- gdbJtagDevice.doLoadImage(imageFileName, imageOffset, commands); >- executeGDBScript(getGDBScript(commands), miSession, submonitor.newChild(20)); >+ String imageFileName = null; >+ if (config.getAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_IMAGE, IGDBJtagConstants.DEFAULT_USE_PROJ_BINARY_FOR_IMAGE)) { >+ IPath programFile = getProgramFile(config); >+ if (programFile != null) { >+ imageFileName = programFile.toOSString(); >+ } > } >+ else { >+ imageFileName = config.getAttribute(IGDBJtagConstants.ATTR_IMAGE_FILE_NAME, IGDBJtagConstants.DEFAULT_IMAGE_FILE_NAME); >+ if (imageFileName.length() > 0) { >+ monitor.beginTask(Messages.getString("GDBJtagDebugger.5"), 1); //$NON-NLS-1$ >+ imageFileName = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(imageFileName); >+ } >+ } >+ if (imageFileName == null) { >+ throw new CoreException(new Status( IStatus.ERROR, >+ Activator.getUniqueIdentifier(), >+ -1, "image file not specified", null)); >+ } >+ >+ imageFileName = imageFileName.replace("\\", "\\\\"); >+ >+ String imageOffset = (imageFileName.endsWith(".elf")) ? "" : "0x" + config.getAttribute(IGDBJtagConstants.ATTR_IMAGE_OFFSET, ""); //$NON-NLS-2$ //$NON-NLS-4$ >+ commands.clear(); >+ gdbJtagDevice.doLoadImage(imageFileName, imageOffset, commands); >+ executeGDBScript(getGDBScript(commands), miSession, submonitor.newChild(20)); > } > submonitor.setWorkRemaining(15); // compensate for optional work above > >- // execute symbol load >- boolean doLoadSymbols = config.getAttribute(IGDBJtagConstants.ATTR_LOAD_SYMBOLS, IGDBJtagConstants.DEFAULT_LOAD_SYMBOLS); >- if (doLoadSymbols) { >- String symbolsFileName = config.getAttribute(IGDBJtagConstants.ATTR_SYMBOLS_FILE_NAME, ""); //$NON-NLS-1$ >- if (symbolsFileName.length() > 0) { >- symbolsFileName = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(symbolsFileName).replace("\\", "\\\\"); >- String symbolsOffset = "0x" + config.getAttribute(IGDBJtagConstants.ATTR_SYMBOLS_OFFSET, ""); //$NON-NLS-2$ >- commands.clear(); >- gdbJtagDevice.doLoadSymbol(symbolsFileName, symbolsOffset, commands); >- executeGDBScript(getGDBScript(commands), miSession, submonitor.newChild(15)); >- } >- } > } catch (OperationCanceledException e) { > if (launch != null && launch.canTerminate()) { > launch.terminate(); >@@ -313,4 +356,36 @@ > } > return sb.toString(); > } >+ >+ private static IPath getProgramFile(ILaunchConfiguration config) throws CoreException { >+ >+ IPath programPath = CDebugUtils.getProgramPath(config); >+ if (programPath != null & programPath.isEmpty()) { >+ return null; >+ } >+ >+ if (!programPath.isAbsolute()) { >+ ICProject cproject = CDebugUtils.getCProject(config); >+ if (cproject == null) { >+ return null; >+ } >+ >+ IPath location = cproject.getProject().getLocation(); >+ if (location != null) { >+ programPath = location.append(programPath); >+ if (!programPath.toFile().exists()) { >+ // Try the old way, which is required to support linked resources. >+ IFile projFile = null; >+ try { >+ projFile = cproject.getProject().getFile(CDebugUtils.getProgramPath(config)); >+ } >+ catch (IllegalArgumentException exc) {} // thrown if relative path that resolves to a root file (e.g., "..\somefile") >+ if (projFile != null && projFile.exists()) { >+ programPath = projFile.getLocation(); >+ } >+ } >+ } >+ } >+ return programPath; >+ } > } >Index: src/org/eclipse/cdt/debug/gdbjtag/core/GDBJtagLaunchConfigurationDelegate.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/GDBJtagLaunchConfigurationDelegate.java,v >retrieving revision 1.4 >diff -u -r1.4 GDBJtagLaunchConfigurationDelegate.java >--- src/org/eclipse/cdt/debug/gdbjtag/core/GDBJtagLaunchConfigurationDelegate.java 14 Jun 2007 19:44:18 -0000 1.4 >+++ src/org/eclipse/cdt/debug/gdbjtag/core/GDBJtagLaunchConfigurationDelegate.java 4 May 2010 23:24:33 -0000 >@@ -51,7 +51,7 @@ > ICProject project = verifyCProject(configuration); > IPath exePath = verifyProgramPath(configuration); > File exeFile = exePath != null ? exePath.toFile() : null; >- ICDISession session = debugger.createSession(launch, exeFile, submonitor.newChild(1)); >+ ICDISession session = debugger.createSession(launch, null, submonitor.newChild(1)); > IBinaryObject exeBinary = null; > if ( exePath != null ) { > exeBinary = verifyBinary(project, exePath); >Index: src/org/eclipse/cdt/debug/gdbjtag/core/IGDBJtagConstants.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/IGDBJtagConstants.java,v >retrieving revision 1.4 >diff -u -r1.4 IGDBJtagConstants.java >--- src/org/eclipse/cdt/debug/gdbjtag/core/IGDBJtagConstants.java 5 May 2008 21:07:00 -0000 1.4 >+++ src/org/eclipse/cdt/debug/gdbjtag/core/IGDBJtagConstants.java 4 May 2010 23:24:33 -0000 >@@ -47,15 +47,32 @@ > public static final String ATTR_STOP_AT = Activator.PLUGIN_ID + ".stopAt"; //$NON-NLS-1$ > public static final String ATTR_SET_RESUME = Activator.PLUGIN_ID + ".setResume"; //$NON-NLS-1$ > public static final String ATTR_RUN_COMMANDS = Activator.PLUGIN_ID + ".runCommands"; //$NON-NLS-1$ >- >+ /** @since 7.0 */ public static final String ATTR_USE_PROJ_BINARY_FOR_IMAGE = Activator.PLUGIN_ID + ".useProjBinaryForImage"; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String ATTR_USE_FILE_FOR_IMAGE = Activator.PLUGIN_ID + ".useFileForImage"; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String ATTR_USE_PROJ_BINARY_FOR_SYMBOLS = Activator.PLUGIN_ID + ".useProjBinaryForSymbols"; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String ATTR_USE_FILE_FOR_SYMBOLS = Activator.PLUGIN_ID + ".useFileForSymbols"; //$NON-NLS-1$ >+ > public static final boolean DEFAULT_DO_RESET = true; > public static final boolean DEFAULT_DO_HALT = true; > public static final int DEFAULT_DELAY = 3; >- public static final boolean DEFAULT_LOAD_IMAGE = false; >- public static final boolean DEFAULT_LOAD_SYMBOLS = false; >+ public static final boolean DEFAULT_LOAD_IMAGE = true; >+ public static final boolean DEFAULT_LOAD_SYMBOLS = true; > public static final boolean DEFAULT_SET_PC_REGISTER = false; > public static final boolean DEFAULT_SET_STOP_AT = false; > public static final boolean DEFAULT_SET_RESUME = false; > public static final boolean DEFAULT_USE_DEFAULT_RUN = true; >- >+ >+ /** @since 7.0 */ public static final String DEFAULT_INIT_COMMANDS = ""; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String DEFAULT_IMAGE_FILE_NAME = ""; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String DEFAULT_SYMBOLS_FILE_NAME = ""; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String DEFAULT_RUN_COMMANDS = ""; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final boolean DEFAULT_USE_PROJ_BINARY_FOR_IMAGE = true; >+ /** @since 7.0 */ public static final boolean DEFAULT_USE_FILE_FOR_IMAGE = false; >+ /** @since 7.0 */ public static final boolean DEFAULT_USE_PROJ_BINARY_FOR_SYMBOLS = true; >+ /** @since 7.0 */ public static final boolean DEFAULT_USE_FILE_FOR_SYMBOLS = false; >+ /** @since 7.0 */ public static final String DEFAULT_IMAGE_OFFSET = ""; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String DEFAULT_SYMBOLS_OFFSET = ""; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String DEFAULT_PC_REGISTER = ""; //$NON-NLS-1$ >+ /** @since 7.0 */ public static final String DEFAULT_STOP_AT = ""; //$NON-NLS-1$ >+ > } >Index: src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/DefaultGDBJtagDeviceImpl.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/DefaultGDBJtagDeviceImpl.java,v >retrieving revision 1.3 >diff -u -r1.3 DefaultGDBJtagDeviceImpl.java >--- src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/DefaultGDBJtagDeviceImpl.java 3 Dec 2008 18:50:24 -0000 1.3 >+++ src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/DefaultGDBJtagDeviceImpl.java 4 May 2010 23:24:33 -0000 >@@ -72,8 +72,15 @@ > */ > public void doLoadImage(String imageFileName, String imageOffset, Collection commands) { > String file = escapeScpaces(imageFileName); >+ >+ // 'restore' simply puts the program into memory. > String cmd = "restore " + file + " " + imageOffset; > addCmd(commands, cmd); >+ >+ // 'exec-file' specifies the program as the context for getting memory. >+ // Basically, it tells gdb "this is the program we'll be debugging" >+ cmd = "exec-file " + file; >+ addCmd(commands, cmd); > } > > /* (non-Javadoc) >@@ -81,8 +88,12 @@ > */ > public void doLoadSymbol(String symbolFileName, String symbolOffset, Collection commands) { > String file = escapeScpaces(symbolFileName); >- String cmd = "add-sym " + file + " " + symbolOffset; >- addCmd(commands, cmd); >+ if (symbolOffset == null || (symbolOffset.length() == 0)) { >+ addCmd(commands, "symbol-file " + file); >+ } >+ else { >+ addCmd(commands, "add-sym " + file + " " + symbolOffset); >+ } > } > > protected String escapeScpaces(String file) { >#P org.eclipse.cdt.debug.gdbjtag.ui >Index: src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagDSFDebuggerTab.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/jtag/org.eclipse.cdt.debug.gdbjtag.ui/src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagDSFDebuggerTab.java,v >retrieving revision 1.4 >diff -u -r1.4 GDBJtagDSFDebuggerTab.java >--- src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagDSFDebuggerTab.java 27 Apr 2010 20:17:23 -0000 1.4 >+++ src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagDSFDebuggerTab.java 4 May 2010 23:24:34 -0000 >@@ -141,7 +141,7 @@ > gdbCommand.setLayoutData(gd); > gdbCommand.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -199,7 +199,7 @@ > jtagDevice.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { > updateDeviceIpPort(jtagDevice.getText()); >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -211,7 +211,7 @@ > ipAddress.setLayoutData(gd); > ipAddress.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -228,7 +228,7 @@ > }); > portNumber.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > } >Index: src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagDebuggerTab.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/jtag/org.eclipse.cdt.debug.gdbjtag.ui/src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagDebuggerTab.java,v >retrieving revision 1.10 >diff -u -r1.10 GDBJtagDebuggerTab.java >--- src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagDebuggerTab.java 16 Mar 2010 15:34:08 -0000 1.10 >+++ src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagDebuggerTab.java 4 May 2010 23:24:34 -0000 >@@ -146,7 +146,7 @@ > gdbCommand.setLayoutData(gd); > gdbCommand.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -186,7 +186,7 @@ > commandFactory.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { > commandFactoryChanged(); >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > } >@@ -201,7 +201,7 @@ > miProtocol = new Combo(comp, SWT.READ_ONLY | SWT.DROP_DOWN); > miProtocol.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > } >@@ -272,7 +272,7 @@ > jtagDevice.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { > updateDeviceIpPort(jtagDevice.getText()); >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -284,7 +284,7 @@ > ipAddress.setLayoutData(gd); > ipAddress.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -301,7 +301,7 @@ > }); > portNumber.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > } >Index: src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagStartupTab.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/jtag/org.eclipse.cdt.debug.gdbjtag.ui/src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagStartupTab.java,v >retrieving revision 1.8 >diff -u -r1.8 GDBJtagStartupTab.java >--- src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagStartupTab.java 16 Mar 2010 15:34:08 -0000 1.8 >+++ src/org/eclipse/cdt/debug/gdbjtag/ui/GDBJtagStartupTab.java 4 May 2010 23:24:34 -0000 >@@ -15,7 +15,7 @@ > > import java.io.File; > >-import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; >+import org.eclipse.cdt.debug.core.CDebugUtils; > import org.eclipse.cdt.debug.gdbjtag.core.IGDBJtagConstants; > import org.eclipse.core.resources.IResource; > import org.eclipse.core.resources.ResourcesPlugin; >@@ -33,6 +33,7 @@ > import org.eclipse.swt.events.ModifyListener; > import org.eclipse.swt.events.SelectionAdapter; > import org.eclipse.swt.events.SelectionEvent; >+import org.eclipse.swt.events.SelectionListener; > import org.eclipse.swt.events.VerifyEvent; > import org.eclipse.swt.events.VerifyListener; > import org.eclipse.swt.graphics.Image; >@@ -82,6 +83,15 @@ > boolean resume = false; > > Text runCommands; >+ >+ private Button fUseProjectBinaryForImage; >+ private Button fUseFileForImage; >+ private Button fUseProjectBinaryForSymbols; >+ private Button fUseFileForSymbols; >+ private Label fImageOffsetLabel; >+ private Label fSymbolsOffsetLabel; >+ private Label fProjBinaryLabel1; >+ private Label fProjBinaryLabel2; > > public String getName() { > return TAB_NAME; >@@ -170,7 +180,7 @@ > }); > delay.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -197,7 +207,7 @@ > initCommands.setLayoutData(gd); > initCommands.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent evt) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -231,15 +241,41 @@ > comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); > comp.setLayout(layout); > >- Label imageLabel = new Label(comp, SWT.NONE); >- imageLabel.setText(Messages.getString("GDBJtagStartupTab.imageLabel_Text")); >+ SelectionListener radioButtonListener = new SelectionListener() { >+ public void widgetSelected(SelectionEvent e) { >+ updateLaunchConfigurationDialog(); >+ updateUseFileEnablement(); >+ } >+ public void widgetDefaultSelected(SelectionEvent e) { >+ } >+ }; >+ >+ fUseProjectBinaryForImage = new Button(comp, SWT.RADIO); >+ fUseProjectBinaryForImage.setText("Use project binary:"); >+ gd = new GridData(); >+ gd.horizontalSpan = 1; >+ fUseProjectBinaryForImage.setLayoutData(gd); >+ fUseProjectBinaryForImage.addSelectionListener(radioButtonListener); >+ >+ fProjBinaryLabel1 = new Label(comp, SWT.NONE); >+ gd = new GridData(GridData.FILL_HORIZONTAL); >+ gd.horizontalSpan = 3; >+ fProjBinaryLabel1.setLayoutData(gd); >+ >+ fUseFileForImage = new Button(comp, SWT.RADIO); >+ fUseFileForImage.setText("Use file:"); >+ gd = new GridData(); >+ gd.horizontalSpan = 1; >+ fUseFileForImage.setLayoutData(gd); >+ fUseFileForImage.addSelectionListener(radioButtonListener); >+ > imageFileName = new Text(comp, SWT.BORDER); > gd = new GridData(GridData.FILL_HORIZONTAL); > gd.horizontalSpan = 1; > imageFileName.setLayoutData(gd); > imageFileName.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -257,8 +293,8 @@ > } > }); > >- Label imageOffsetLabel = new Label(comp, SWT.NONE); >- imageOffsetLabel.setText(Messages.getString("GDBJtagStartupTab.imageOffsetLabel_Text")); >+ fImageOffsetLabel = new Label(comp, SWT.NONE); >+ fImageOffsetLabel.setText(Messages.getString("GDBJtagStartupTab.imageOffsetLabel_Text")); > imageOffset = new Text(comp, SWT.BORDER); > gd = new GridData(); > gd.horizontalSpan = 1; >@@ -271,10 +307,11 @@ > }); > imageOffset.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >+ > loadSymbols = new Button(group, SWT.CHECK); > loadSymbols.setText(Messages.getString("GDBJtagStartupTab.loadSymbols_Text")); > gd = new GridData(); >@@ -292,16 +329,33 @@ > layout.numColumns = 4; > comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); > comp.setLayout(layout); >+ >+ fUseProjectBinaryForSymbols = new Button(comp, SWT.RADIO); >+ fUseProjectBinaryForSymbols.setText("Use project binary"); >+ gd = new GridData(); >+ gd.horizontalSpan = 1; >+ fUseProjectBinaryForSymbols.setLayoutData(gd); >+ fUseProjectBinaryForSymbols.addSelectionListener(radioButtonListener); >+ >+ fProjBinaryLabel2 = new Label(comp, SWT.NONE); >+ gd = new GridData(GridData.FILL_HORIZONTAL); >+ gd.horizontalSpan = 3; >+ fProjBinaryLabel2.setLayoutData(gd); >+ >+ fUseFileForSymbols = new Button(comp, SWT.RADIO); >+ fUseFileForSymbols.setText("Use file:"); >+ gd = new GridData(); >+ gd.horizontalSpan = 1; >+ fUseFileForSymbols.setLayoutData(gd); >+ fUseFileForSymbols.addSelectionListener(radioButtonListener); > >- Label symbolLabel = new Label(comp, SWT.NONE); >- symbolLabel.setText(Messages.getString("GDBJtagStartupTab.symbolsLabel_Text")); > symbolsFileName = new Text(comp, SWT.BORDER); > gd = new GridData(GridData.FILL_HORIZONTAL); > gd.horizontalSpan = 1; > symbolsFileName.setLayoutData(gd); > symbolsFileName.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -319,8 +373,8 @@ > } > }); > >- Label symbolsOffsetLabel = new Label(comp, SWT.NONE); >- symbolsOffsetLabel.setText(Messages.getString("GDBJtagStartupTab.symbolsOffsetLabel_Text")); >+ fSymbolsOffsetLabel = new Label(comp, SWT.NONE); >+ fSymbolsOffsetLabel.setText(Messages.getString("GDBJtagStartupTab.symbolsOffsetLabel_Text")); > symbolsOffset = new Text(comp, SWT.BORDER); > gd = new GridData(); > gd.horizontalSpan = 1; >@@ -333,12 +387,24 @@ > }); > symbolsOffset.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > > } > >+ private void updateUseFileEnablement() { >+ boolean enabled = loadImage.getSelection() && fUseFileForImage.getSelection(); >+ imageFileName.setEnabled(enabled); >+ imageFileBrowseWs.setEnabled(enabled); >+ imageFileBrowse.setEnabled(enabled); >+ >+ enabled = loadSymbols.getSelection() && fUseFileForSymbols.getSelection(); >+ symbolsFileName.setEnabled(enabled); >+ symbolsFileBrowseWs.setEnabled(enabled); >+ symbolsFileBrowse.setEnabled(enabled); >+ } >+ > public void createRunOptionGroup(Composite parent) { > Group group = new Group(parent, SWT.NONE); > GridLayout layout = new GridLayout(); >@@ -373,7 +439,7 @@ > }); > pcRegister.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -396,7 +462,7 @@ > stopAt.setLayoutData(gd); > stopAt.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > >@@ -419,18 +485,20 @@ > > private void loadImageChanged() { > boolean enabled = loadImage.getSelection(); >- imageFileName.setEnabled(enabled); >- imageFileBrowseWs.setEnabled(enabled); >- imageFileBrowse.setEnabled(enabled); >+ fUseProjectBinaryForImage.setEnabled(enabled); >+ fUseFileForImage.setEnabled(enabled); > imageOffset.setEnabled(enabled); >+ fImageOffsetLabel.setEnabled(enabled); >+ updateUseFileEnablement(); > } > > private void loadSymbolsChanged() { > boolean enabled = loadSymbols.getSelection(); >- symbolsFileName.setEnabled(enabled); >- symbolsFileBrowseWs.setEnabled(enabled); >- symbolsFileBrowse.setEnabled(enabled); >+ fUseProjectBinaryForSymbols.setEnabled(enabled); >+ fUseFileForSymbols.setEnabled(enabled); > symbolsOffset.setEnabled(enabled); >+ fSymbolsOffsetLabel.setEnabled(enabled); >+ updateUseFileEnablement(); > } > > private void pcRegisterChanged() { >@@ -459,7 +527,7 @@ > runCommands.setLayoutData(gd); > runCommands.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent evt) { >- updateLaunchConfigurationDialog(); >+ scheduleUpdateJob(); > } > }); > } >@@ -474,40 +542,45 @@ > setMessage(null); > > if (loadImage.getSelection()) { >- if (imageFileName.getText().trim().length() == 0) { >- setErrorMessage(Messages.getString("GDBJtagStartupTab.imageFileName_not_specified")); >- return false; >- } >- >- String path; >- try { >- path = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(imageFileName.getText().trim()); >- IPath filePath = new Path(path); >- if (!filePath.toFile().exists()) { >+ if (!fUseProjectBinaryForImage.getSelection()) { >+ if (imageFileName.getText().trim().length() == 0) { >+ setErrorMessage(Messages.getString("GDBJtagStartupTab.imageFileName_not_specified")); >+ return false; >+ } >+ >+ try { >+ String path = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(imageFileName.getText().trim()); >+ IPath filePath = new Path(path); >+ if (!filePath.toFile().exists()) { >+ setErrorMessage(Messages.getString("GDBJtagStartupTab.imageFileName_does_not_exist")); >+ return false; >+ } >+ } catch (CoreException e) { // string substitution throws this if expression doesn't resolve > setErrorMessage(Messages.getString("GDBJtagStartupTab.imageFileName_does_not_exist")); > return false; > } >- } catch (CoreException e) { >- Activator.getDefault().getLog().log(e.getStatus()); > } > } else { > setErrorMessage(null); > } > if (loadSymbols.getSelection()) { >- if (symbolsFileName.getText().trim().length() == 0) { >- setErrorMessage(Messages.getString("GDBJtagStartupTab.symbolsFileName_not_specified")); >- return false; >- } >- String path; >- try { >- path = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(symbolsFileName.getText().trim()); >- IPath filePath = new Path(path); >- if (!filePath.toFile().exists()) { >+ if (!fUseProjectBinaryForSymbols.getSelection()) { >+ if (symbolsFileName.getText().trim().length() == 0) { >+ setErrorMessage(Messages.getString("GDBJtagStartupTab.symbolsFileName_not_specified")); >+ return false; >+ } >+ >+ try { >+ String path = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(symbolsFileName.getText().trim()); >+ IPath filePath = new Path(path); >+ if (!filePath.toFile().exists()) { >+ setErrorMessage(Messages.getString("GDBJtagStartupTab.symbolsFileName_does_not_exist")); >+ return false; >+ } >+ } catch (CoreException e) { // string substitution throws this if expression doesn't resolve > setErrorMessage(Messages.getString("GDBJtagStartupTab.symbolsFileName_does_not_exist")); > return false; > } >- } catch (CoreException e) { >- Activator.getDefault().getLog().log(e.getStatus()); > } > } else { > setErrorMessage(null); >@@ -540,72 +613,135 @@ > } > > /* (non-Javadoc) >- * @see org.eclipse.debug.ui.AbstractLaunchConfigurationTab#updateLaunchConfigurationDialog() >+ * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration) > */ >-// protected void updateLaunchConfigurationDialog() { >-// super.updateLaunchConfigurationDialog(); >-// isValid(getLaunchConfigurationDialog()); >-// } >- > public void initializeFrom(ILaunchConfiguration configuration) { > try { >- initCommands.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_INIT_COMMANDS, "")); //$NON-NLS-1$ >+ // Initialization Commands > doReset.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_DO_RESET, IGDBJtagConstants.DEFAULT_DO_RESET)); >- doResetChanged(); >- doHalt.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_DO_HALT, IGDBJtagConstants.DEFAULT_DO_HALT)); > delay.setText(String.valueOf(configuration.getAttribute(IGDBJtagConstants.ATTR_DELAY, IGDBJtagConstants.DEFAULT_DELAY))); >+ doHalt.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_DO_HALT, IGDBJtagConstants.DEFAULT_DO_HALT)); >+ initCommands.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_INIT_COMMANDS, IGDBJtagConstants.DEFAULT_INIT_COMMANDS)); >+ >+ // Load Image... > loadImage.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_LOAD_IMAGE, IGDBJtagConstants.DEFAULT_LOAD_IMAGE)); >- loadImageChanged(); >- String defaultImageFileName = configuration.getAttribute(IGDBJtagConstants.ATTR_IMAGE_FILE_NAME, ""); //$NON-NLS-1$ >- if (defaultImageFileName.equals("")) { >- defaultImageFileName = configuration.getWorkingCopy().getAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, ""); //$NON-NLS-1$ >- } >- imageFileName.setText(defaultImageFileName); >- imageOffset.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_IMAGE_OFFSET, "")); //$NON-NLS-1$ >+ fUseProjectBinaryForImage.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_IMAGE, IGDBJtagConstants.DEFAULT_USE_PROJ_BINARY_FOR_IMAGE)); >+ fUseFileForImage.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_USE_FILE_FOR_IMAGE, IGDBJtagConstants.DEFAULT_USE_FILE_FOR_IMAGE)); >+ imageFileName.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_IMAGE_FILE_NAME, IGDBJtagConstants.DEFAULT_IMAGE_FILE_NAME)); >+ imageOffset.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_IMAGE_OFFSET, IGDBJtagConstants.DEFAULT_IMAGE_OFFSET)); >+ >+ //.. and Symbols > loadSymbols.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_LOAD_SYMBOLS, IGDBJtagConstants.DEFAULT_LOAD_SYMBOLS)); >- loadSymbolsChanged(); >- symbolsFileName.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_SYMBOLS_FILE_NAME, "")); //$NON-NLS-1$ >- symbolsOffset.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_SYMBOLS_OFFSET, "")); //$NON-NLS-1$ >+ fUseProjectBinaryForSymbols.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_SYMBOLS, IGDBJtagConstants.DEFAULT_USE_PROJ_BINARY_FOR_SYMBOLS)); >+ fUseFileForSymbols.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_USE_FILE_FOR_SYMBOLS, IGDBJtagConstants.DEFAULT_USE_FILE_FOR_SYMBOLS)); >+ symbolsFileName.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_SYMBOLS_FILE_NAME, IGDBJtagConstants.DEFAULT_SYMBOLS_FILE_NAME)); >+ symbolsOffset.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_SYMBOLS_OFFSET, IGDBJtagConstants.DEFAULT_SYMBOLS_OFFSET)); >+ >+ // Runtime Options > setPcRegister.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_SET_PC_REGISTER, IGDBJtagConstants.DEFAULT_SET_PC_REGISTER)); >- pcRegisterChanged(); >- pcRegister.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_PC_REGISTER, "")); //$NON-NLS-1$ >+ pcRegister.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_PC_REGISTER, IGDBJtagConstants.DEFAULT_PC_REGISTER)); > setStopAt.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_SET_STOP_AT, IGDBJtagConstants.DEFAULT_SET_STOP_AT)); >- stopAtChanged(); >- stopAt.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_STOP_AT, "")); //$NON-NLS-1$ >+ stopAt.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_STOP_AT, IGDBJtagConstants.DEFAULT_STOP_AT)); > setResume.setSelection(configuration.getAttribute(IGDBJtagConstants.ATTR_SET_RESUME, IGDBJtagConstants.DEFAULT_SET_RESUME)); >+ >+ // Run Commands >+ runCommands.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_RUN_COMMANDS, IGDBJtagConstants.DEFAULT_RUN_COMMANDS)); >+ >+ String programName = CDebugUtils.getProgramName(configuration); >+ if (programName != null) { >+ int lastSlash = programName.indexOf('\\'); >+ if (lastSlash >= 0) { >+ programName = programName.substring(lastSlash + 1); >+ } >+ lastSlash = programName.indexOf('/'); >+ if (lastSlash >= 0) { >+ programName = programName.substring(lastSlash + 1); >+ } >+ fProjBinaryLabel1.setText(programName); >+ fProjBinaryLabel2.setText(programName); >+ } >+ >+ doResetChanged(); >+ loadImageChanged(); >+ loadSymbolsChanged(); >+ pcRegisterChanged(); >+ stopAtChanged(); > resumeChanged(); >- runCommands.setText(configuration.getAttribute(IGDBJtagConstants.ATTR_RUN_COMMANDS, "")); //$NON-NLS-1$) >+ updateUseFileEnablement(); >+ > } catch (CoreException e) { > Activator.getDefault().getLog().log(e.getStatus()); > } > } > >+ /* (non-Javadoc) >+ * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy) >+ */ > public void performApply(ILaunchConfigurationWorkingCopy configuration) { >- configuration.setAttribute(IGDBJtagConstants.ATTR_INIT_COMMANDS, initCommands.getText()); >- configuration.setAttribute(IGDBJtagConstants.ATTR_DELAY, Integer.parseInt(delay.getText())); >+ >+ // Initialization Commands > configuration.setAttribute(IGDBJtagConstants.ATTR_DO_RESET, doReset.getSelection()); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_DELAY, Integer.parseInt(delay.getText())); > configuration.setAttribute(IGDBJtagConstants.ATTR_DO_HALT, doHalt.getSelection()); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_INIT_COMMANDS, initCommands.getText()); >+ >+ // Load Image... > configuration.setAttribute(IGDBJtagConstants.ATTR_LOAD_IMAGE, loadImage.getSelection()); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_IMAGE, fUseProjectBinaryForImage.getSelection()); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_USE_FILE_FOR_IMAGE, fUseFileForImage.getSelection()); > configuration.setAttribute(IGDBJtagConstants.ATTR_IMAGE_FILE_NAME, imageFileName.getText().trim()); > configuration.setAttribute(IGDBJtagConstants.ATTR_IMAGE_OFFSET, imageOffset.getText()); >+ >+ //.. and Symbols > configuration.setAttribute(IGDBJtagConstants.ATTR_LOAD_SYMBOLS, loadSymbols.getSelection()); >- configuration.setAttribute(IGDBJtagConstants.ATTR_SYMBOLS_OFFSET, symbolsOffset.getText()); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_SYMBOLS, fUseProjectBinaryForSymbols.getSelection()); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_USE_FILE_FOR_SYMBOLS, fUseFileForSymbols.getSelection()); > configuration.setAttribute(IGDBJtagConstants.ATTR_SYMBOLS_FILE_NAME, symbolsFileName.getText().trim()); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_SYMBOLS_OFFSET, symbolsOffset.getText()); >+ >+ // Runtime Options > configuration.setAttribute(IGDBJtagConstants.ATTR_SET_PC_REGISTER, setPcRegister.getSelection()); > configuration.setAttribute(IGDBJtagConstants.ATTR_PC_REGISTER, pcRegister.getText()); > configuration.setAttribute(IGDBJtagConstants.ATTR_SET_STOP_AT, setStopAt.getSelection()); > configuration.setAttribute(IGDBJtagConstants.ATTR_STOP_AT, stopAt.getText()); > configuration.setAttribute(IGDBJtagConstants.ATTR_SET_RESUME, setResume.getSelection()); >+ >+ // Run Commands > configuration.setAttribute(IGDBJtagConstants.ATTR_RUN_COMMANDS, runCommands.getText()); > } > >+ /* (non-Javadoc) >+ * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy) >+ */ > public void setDefaults(ILaunchConfigurationWorkingCopy configuration) { >- configuration.setAttribute(IGDBJtagConstants.ATTR_INIT_COMMANDS, ""); //$NON-NLS-1$ >+ // Initialization Commands >+ configuration.setAttribute(IGDBJtagConstants.ATTR_DO_RESET, IGDBJtagConstants.DEFAULT_DO_RESET); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_DELAY, IGDBJtagConstants.DEFAULT_DELAY); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_DO_HALT, IGDBJtagConstants.DEFAULT_DO_HALT); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_INIT_COMMANDS, IGDBJtagConstants.DEFAULT_INIT_COMMANDS); >+ >+ // Load Image... > configuration.setAttribute(IGDBJtagConstants.ATTR_LOAD_IMAGE, IGDBJtagConstants.DEFAULT_LOAD_IMAGE); >- configuration.setAttribute(IGDBJtagConstants.ATTR_IMAGE_FILE_NAME, ""); //$NON-NLS-1$ >- configuration.setAttribute(IGDBJtagConstants.ATTR_RUN_COMMANDS, ""); //$NON-NLS-1$ >- configuration.setAttribute(IGDBJtagConstants.ATTR_DO_RESET, true); >- configuration.setAttribute(IGDBJtagConstants.ATTR_DO_HALT, true); >- } >+ configuration.setAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_IMAGE, IGDBJtagConstants.DEFAULT_USE_PROJ_BINARY_FOR_IMAGE); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_USE_FILE_FOR_IMAGE, IGDBJtagConstants.DEFAULT_USE_FILE_FOR_IMAGE); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_IMAGE_FILE_NAME, IGDBJtagConstants.DEFAULT_IMAGE_FILE_NAME); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_IMAGE_OFFSET, IGDBJtagConstants.DEFAULT_IMAGE_OFFSET); >+ >+ //.. and Symbols >+ configuration.setAttribute(IGDBJtagConstants.ATTR_LOAD_SYMBOLS, IGDBJtagConstants.DEFAULT_LOAD_SYMBOLS); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_USE_PROJ_BINARY_FOR_SYMBOLS, IGDBJtagConstants.DEFAULT_USE_PROJ_BINARY_FOR_SYMBOLS); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_USE_FILE_FOR_SYMBOLS, IGDBJtagConstants.DEFAULT_USE_FILE_FOR_SYMBOLS); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_SYMBOLS_FILE_NAME, IGDBJtagConstants.DEFAULT_SYMBOLS_FILE_NAME); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_SYMBOLS_OFFSET, IGDBJtagConstants.DEFAULT_SYMBOLS_OFFSET); >+ >+ // Runtime Options >+ configuration.setAttribute(IGDBJtagConstants.ATTR_SET_PC_REGISTER, IGDBJtagConstants.DEFAULT_SET_PC_REGISTER); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_PC_REGISTER, IGDBJtagConstants.DEFAULT_PC_REGISTER); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_SET_STOP_AT, IGDBJtagConstants.DEFAULT_SET_STOP_AT); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_STOP_AT, IGDBJtagConstants.DEFAULT_STOP_AT); >+ configuration.setAttribute(IGDBJtagConstants.ATTR_SET_RESUME, IGDBJtagConstants.DEFAULT_SET_RESUME); > >+ // Run Commands >+ configuration.setAttribute(IGDBJtagConstants.ATTR_RUN_COMMANDS, IGDBJtagConstants.DEFAULT_RUN_COMMANDS); >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 310304
:
166318
|
167065
|
167248
|
167385
|
167476
|
167477