mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-04 14:55:41 +02:00
Bug 237306: Added -add-inferior and -remove-inferior commands
This commit is contained in:
parent
91ca9b78d5
commit
1b4cb4d213
4 changed files with 133 additions and 0 deletions
|
@ -41,6 +41,7 @@ import org.eclipse.cdt.dsf.mi.service.command.commands.CLISource;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIThread;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIThread;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.CLITrace;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.CLITrace;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIUnsetEnv;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIUnsetEnv;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIAddInferior;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakAfter;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakAfter;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakCommands;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakCommands;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakCondition;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakCondition;
|
||||||
|
@ -94,6 +95,7 @@ import org.eclipse.cdt.dsf.mi.service.command.commands.MIInferiorTTYSet;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIInterpreterExec;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIInterpreterExec;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIInterpreterExecConsole;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIInterpreterExecConsole;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIListThreadGroups;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIListThreadGroups;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIRemoveInferior;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackInfoDepth;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackInfoDepth;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackListArguments;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackListArguments;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackListFrames;
|
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackListFrames;
|
||||||
|
@ -136,6 +138,7 @@ import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoSharedLibraryInfo;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoThreadsInfo;
|
import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoThreadsInfo;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.output.CLIThreadInfo;
|
import org.eclipse.cdt.dsf.mi.service.command.output.CLIThreadInfo;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.output.CLITraceInfo;
|
import org.eclipse.cdt.dsf.mi.service.command.output.CLITraceInfo;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.output.MIAddInferiorInfo;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.output.MIBreakInsertInfo;
|
import org.eclipse.cdt.dsf.mi.service.command.output.MIBreakInsertInfo;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.output.MIBreakListInfo;
|
import org.eclipse.cdt.dsf.mi.service.command.output.MIBreakListInfo;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.output.MIDataDisassembleInfo;
|
import org.eclipse.cdt.dsf.mi.service.command.output.MIDataDisassembleInfo;
|
||||||
|
@ -252,6 +255,11 @@ public class CommandFactory {
|
||||||
return new CLIUnsetEnv(ctx, name);
|
return new CLIUnsetEnv(ctx, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @since 4.0 */
|
||||||
|
public ICommand<MIAddInferiorInfo> createMIAddInferior(ICommandControlDMContext ctx) {
|
||||||
|
return new MIAddInferior(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
public ICommand<MIInfo> createMIBreakAfter(IBreakpointsTargetDMContext ctx, int breakpoint, int ignoreCount) {
|
public ICommand<MIInfo> createMIBreakAfter(IBreakpointsTargetDMContext ctx, int breakpoint, int ignoreCount) {
|
||||||
return new MIBreakAfter(ctx, breakpoint, ignoreCount);
|
return new MIBreakAfter(ctx, breakpoint, ignoreCount);
|
||||||
}
|
}
|
||||||
|
@ -592,6 +600,11 @@ public class CommandFactory {
|
||||||
return new MIListThreadGroups(ctx, listAll);
|
return new MIListThreadGroups(ctx, listAll);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @since 4.0 */
|
||||||
|
public ICommand<MIInfo> createMIRemoveInferior(ICommandControlDMContext ctx, String groupId) {
|
||||||
|
return new MIRemoveInferior(ctx, groupId);
|
||||||
|
}
|
||||||
|
|
||||||
public ICommand<MIStackInfoDepthInfo> createMIStackInfoDepth(IMIExecutionDMContext ctx) {
|
public ICommand<MIStackInfoDepthInfo> createMIStackInfoDepth(IMIExecutionDMContext ctx) {
|
||||||
return new MIStackInfoDepth(ctx);
|
return new MIStackInfoDepth(ctx);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2010 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
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Ericsson - Initial API and implementation
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
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.command.output.MIAddInferiorInfo;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.output.MIOutput;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* -add-inferior
|
||||||
|
* ^done,inferior="i2"
|
||||||
|
*
|
||||||
|
* Creates a new inferior. The created inferior is not associated with any executable.
|
||||||
|
* Such association may be established with the '-file-exec-and-symbols' command.
|
||||||
|
* The command response has a single field, 'thread-group', whose value is the
|
||||||
|
* identifier of the thread group corresponding to the new inferior.
|
||||||
|
*
|
||||||
|
* @since 4.0
|
||||||
|
*/
|
||||||
|
public class MIAddInferior extends MICommand<MIAddInferiorInfo>
|
||||||
|
{
|
||||||
|
public MIAddInferior(ICommandControlDMContext dmc) {
|
||||||
|
super(dmc, "-add-inferior"); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MIAddInferiorInfo getResult(MIOutput output) {
|
||||||
|
return new MIAddInferiorInfo(output);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2010 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
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Ericsson - Initial API and implementation
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
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.command.output.MIInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* -remove-inferior GROUPID
|
||||||
|
* ^done
|
||||||
|
*
|
||||||
|
* Remove the specified inferior.
|
||||||
|
*
|
||||||
|
* @since 4.0
|
||||||
|
*/
|
||||||
|
public class MIRemoveInferior extends MICommand<MIInfo>
|
||||||
|
{
|
||||||
|
public MIRemoveInferior(ICommandControlDMContext dmc, String groupId) {
|
||||||
|
super(dmc, "-remove-inferior", new String[] { groupId }); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2010 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
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Ericsson - Initial API and implementation
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
package org.eclipse.cdt.dsf.mi.service.command.output;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* -add-inferior
|
||||||
|
* ^done,inferior="i2"
|
||||||
|
*
|
||||||
|
* @since 4.0
|
||||||
|
*/
|
||||||
|
public class MIAddInferiorInfo extends MIInfo {
|
||||||
|
|
||||||
|
private String fGroupId;
|
||||||
|
|
||||||
|
public MIAddInferiorInfo(MIOutput record) {
|
||||||
|
super(record);
|
||||||
|
if (isDone()) {
|
||||||
|
MIOutput out = getMIOutput();
|
||||||
|
MIResultRecord rr = out.getMIResultRecord();
|
||||||
|
if (rr != null) {
|
||||||
|
MIResult[] results = rr.getMIResults();
|
||||||
|
for (int i = 0; i < results.length; i++) {
|
||||||
|
String var = results[i].getVariable();
|
||||||
|
MIValue resultVal = results[i].getMIValue();
|
||||||
|
String str = ""; //$NON-NLS-1$
|
||||||
|
if (resultVal instanceof MIConst) {
|
||||||
|
str = ((MIConst)resultVal).getString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (var.equals("inferior")) { //$NON-NLS-1$
|
||||||
|
fGroupId = str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGroupId() {
|
||||||
|
return fGroupId;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue