mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-23 17:05:26 +02:00
Bug 337602: Setting program arguments should be done per process
This commit is contained in:
parent
8f44836698
commit
82a91d1c7f
4 changed files with 16 additions and 34 deletions
|
@ -183,9 +183,9 @@ public class DebugNewProcessSequence extends ReflectionSequence {
|
|||
String args = fBackend.getProgramArguments();
|
||||
|
||||
if (args != null) {
|
||||
String[] argArray = args.replaceAll("\n", " ").split(" "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
fCommandControl.queueCommand(
|
||||
// here we need to pass the proper container context
|
||||
fCommandFactory.createMIGDBSetArgs(fCommandControl.getContext(), args),
|
||||
fCommandFactory.createMIGDBSetArgs(getContainerContext(), argArray),
|
||||
new DataRequestMonitor<MIInfo>(ImmediateExecutor.getInstance(), rm));
|
||||
} else {
|
||||
rm.done();
|
||||
|
|
|
@ -527,16 +527,6 @@ public class CommandFactory {
|
|||
return new MIExecUntil(dmc, loc);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ICommand<MIInfo> createMIFileExecAndSymbols(ICommandControlDMContext dmc, String file) {
|
||||
return new MIFileExecAndSymbols(dmc, file);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public ICommand<MIInfo> createMIFileExecAndSymbols(ICommandControlDMContext dmc) {
|
||||
return new MIFileExecAndSymbols(dmc);
|
||||
}
|
||||
|
||||
/** @since 4.0 */
|
||||
public ICommand<MIInfo> createMIFileExecAndSymbols(IMIContainerDMContext dmc, String file) {
|
||||
return new MIFileExecAndSymbols(dmc, file);
|
||||
|
@ -571,16 +561,13 @@ public class CommandFactory {
|
|||
return new MIGDBSet(ctx, params);
|
||||
}
|
||||
|
||||
public ICommand<MIInfo> createMIGDBSetArgs(ICommandControlDMContext dmc) {
|
||||
/** @since 4.0 */
|
||||
public ICommand<MIInfo> createMIGDBSetArgs(IMIContainerDMContext dmc) {
|
||||
return new MIGDBSetArgs(dmc);
|
||||
}
|
||||
|
||||
public ICommand<MIInfo> createMIGDBSetArgs(ICommandControlDMContext dmc, String arguments) {
|
||||
return new MIGDBSetArgs(dmc, arguments);
|
||||
}
|
||||
|
||||
/** @since 4.0 */
|
||||
public ICommand<MIInfo> createMIGDBSetArgs(ICommandControlDMContext dmc, String[] arguments) {
|
||||
public ICommand<MIInfo> createMIGDBSetArgs(IMIContainerDMContext dmc, String[] arguments) {
|
||||
return new MIGDBSetArgs(dmc, arguments);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2008, 2009 Ericsson and others.
|
||||
* Copyright (c) 2008, 2011 Ericsson 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
|
||||
|
@ -12,7 +12,7 @@
|
|||
|
||||
package org.eclipse.cdt.dsf.mi.service.command.commands;
|
||||
|
||||
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext;
|
||||
import org.eclipse.cdt.dsf.mi.service.IMIContainerDMContext;
|
||||
|
||||
/**
|
||||
* -gdb-set args ARGS
|
||||
|
@ -21,14 +21,14 @@ import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommand
|
|||
* @since 1.1
|
||||
*/
|
||||
public class MIGDBSetArgs extends MIGDBSet {
|
||||
public MIGDBSetArgs(ICommandControlDMContext dmc) {
|
||||
|
||||
/** @since 4.0 */
|
||||
public MIGDBSetArgs(IMIContainerDMContext dmc) {
|
||||
this(dmc, new String[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 4.0
|
||||
*/
|
||||
public MIGDBSetArgs(ICommandControlDMContext dmc, String[] arguments) {
|
||||
/** @since 4.0 */
|
||||
public MIGDBSetArgs(IMIContainerDMContext dmc, String[] arguments) {
|
||||
super(dmc, null);
|
||||
|
||||
String[] cmdArray = new String[arguments.length + 1];
|
||||
|
@ -38,12 +38,4 @@ public class MIGDBSetArgs extends MIGDBSet {
|
|||
}
|
||||
setParameters(cmdArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use MIGDBSetArgs(ICommandControlDMContext, String[]) instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public MIGDBSetArgs(ICommandControlDMContext dmc, String arguments) {
|
||||
this(dmc, arguments.replaceAll("\n", " ").split(" ")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ import org.eclipse.cdt.dsf.mi.service.CSourceLookup;
|
|||
import org.eclipse.cdt.dsf.mi.service.IMIContainerDMContext;
|
||||
import org.eclipse.cdt.dsf.mi.service.IMIProcesses;
|
||||
import org.eclipse.cdt.dsf.mi.service.MIBreakpointsManager;
|
||||
import org.eclipse.cdt.dsf.mi.service.MIProcesses;
|
||||
import org.eclipse.cdt.dsf.mi.service.command.CommandFactory;
|
||||
import org.eclipse.cdt.dsf.mi.service.command.commands.CLICommand;
|
||||
import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo;
|
||||
|
@ -212,8 +213,10 @@ public class GDBJtagDSFFinalLaunchSequence extends Sequence {
|
|||
String args = fGDBBackend.getProgramArguments();
|
||||
|
||||
if (args != null) {
|
||||
String[] argArray = args.replaceAll("\n", " ").split(" "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
IMIContainerDMContext containerDmc = fProcService.createContainerContextFromGroupId(fCommandControl.getContext(), MIProcesses.UNIQUE_GROUP_ID);
|
||||
fCommandControl.queueCommand(
|
||||
fCommandFactory.createMIGDBSetArgs(fCommandControl.getContext(), args),
|
||||
fCommandFactory.createMIGDBSetArgs(containerDmc, argArray),
|
||||
new DataRequestMonitor<MIInfo>(getExecutor(), requestMonitor));
|
||||
} else {
|
||||
requestMonitor.done();
|
||||
|
|
Loading…
Add table
Reference in a new issue