Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 237306 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_1.java (+70 lines)
Added Link Here
1
package org.eclipse.cdt.dsf.gdb.service;
2
3
import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
4
import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
5
import org.eclipse.cdt.dsf.datamodel.DMContexts;
6
import org.eclipse.cdt.dsf.datamodel.IDMContext;
7
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext;
8
import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin;
9
import org.eclipse.cdt.dsf.gdb.service.command.IGDBControl;
10
import org.eclipse.cdt.dsf.mi.service.IMIContainerDMContext;
11
import org.eclipse.cdt.dsf.mi.service.IMIProcessDMContext;
12
import org.eclipse.cdt.dsf.mi.service.command.CommandFactory;
13
import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo;
14
import org.eclipse.cdt.dsf.service.DsfSession;
15
import org.eclipse.core.runtime.IStatus;
16
import org.eclipse.core.runtime.Status;
17
18
public class GDBProcesses_7_1 extends GDBProcesses_7_0 {
19
20
	private IGDBControl fCommandControl;
21
    private CommandFactory fCommandFactory;
22
	
23
	@Override
24
	public void initialize(RequestMonitor requestMonitor) {
25
		// TODO Auto-generated method stub
26
		super.initialize(requestMonitor);
27
	}
28
29
	public GDBProcesses_7_1(DsfSession session) {
30
		super(session);
31
		// TODO Auto-generated constructor stub
32
	}
33
34
	// GDB 7.1 supports Multi-exec ( multi-process) debug.
35
	public boolean isDebugMultiProcessSupported() {
36
		return true;
37
	}
38
39
	/*
40
	 * GDB 7.1 add-inferior command adds a new and null inferior
41
	 * 
42
	 */
43
    public void addNewInferior(final IProcessDMContext procCtx, final DataRequestMonitor<IDMContext> rm) {
44
		if (procCtx instanceof IMIProcessDMContext) {
45
	    	if (!isDebugMultiProcessSupported()) {
46
	            rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, INTERNAL_ERROR, "Multi-process debug not supported.", null)); //$NON-NLS-1$
47
	            rm.done();    		
48
	    		return;
49
	    	}
50
	    	
51
	    	ICommandControlDMContext controlDmc = DMContexts.getAncestorOfType(procCtx, ICommandControlDMContext.class);
52
			fCommandControl.queueCommand(
53
					fCommandFactory.createCLIAddInferior( controlDmc ),
54
					new DataRequestMonitor<MIInfo>(getExecutor(), rm) {
55
						@Override
56
						protected void handleSuccess() {
57
							IMIContainerDMContext containerDmc = createContainerContext(procCtx,
58
									                                                    ((IMIProcessDMContext)procCtx).getProcId());
59
			                rm.setData(containerDmc);
60
							rm.done();
61
						}
62
					});
63
64
	    } else {
65
            rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, INTERNAL_ERROR, "Invalid process context.", null)); //$NON-NLS-1$
66
            rm.done();
67
	    }
68
	}
69
70
}
(-)src/org/eclipse/cdt/dsf/gdb/service/GdbDebugServicesFactory.java (-1 / +4 lines)
Lines 45-50 Link Here
45
	// This should eventually be "7.0" once GDB 7.0 is released
45
	// This should eventually be "7.0" once GDB 7.0 is released
46
	private static final String GDB_7_0_VERSION = "6.8.50.20090218"; //$NON-NLS-1$	
46
	private static final String GDB_7_0_VERSION = "6.8.50.20090218"; //$NON-NLS-1$	
47
	private static final String GDB_7_2_VERSION = "7.1.50"; //$NON-NLS-1$
47
	private static final String GDB_7_2_VERSION = "7.1.50"; //$NON-NLS-1$
48
	private static final String GDB_7_1_VERSION = "7.1.00"; //$NON-NLS-1$
48
	
49
	
49
	private final String fVersion;
50
	private final String fVersion;
50
	
51
	
Lines 133-139 Link Here
133
		
134
		
134
	@Override
135
	@Override
135
	protected IProcesses createProcessesService(DsfSession session) {
136
	protected IProcesses createProcessesService(DsfSession session) {
136
		if (GDB_7_0_VERSION.compareTo(fVersion) <= 0) {
137
		if (GDB_7_1_VERSION.compareTo(fVersion) <= 0) {
138
			return new GDBProcesses_7_1(session);
139
		}else if (GDB_7_0_VERSION.compareTo(fVersion) <= 0) {
137
			return new GDBProcesses_7_0(session);
140
			return new GDBProcesses_7_0(session);
138
		}
141
		}
139
		return new GDBProcesses(session);
142
		return new GDBProcesses(session);
(-)src/org/eclipse/cdt/dsf/mi/service/command/CommandFactory.java (-98 / +5 lines)
Lines 26-129 Link Here
26
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext;
26
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext;
27
import org.eclipse.cdt.dsf.gdb.service.IGDBTraceControl.ITraceTargetDMContext;
27
import org.eclipse.cdt.dsf.gdb.service.IGDBTraceControl.ITraceTargetDMContext;
28
import org.eclipse.cdt.dsf.mi.service.IMIExecutionDMContext;
28
import org.eclipse.cdt.dsf.mi.service.IMIExecutionDMContext;
29
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIAttach;
29
import org.eclipse.cdt.dsf.mi.service.command.commands.*;
30
import org.eclipse.cdt.dsf.mi.service.command.commands.CLICatch;
31
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIDetach;
32
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIExecAbort;
33
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIInfoSharedLibrary;
34
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIInfoThreads;
35
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIJump;
36
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIPasscount;
37
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIRecord;
38
import org.eclipse.cdt.dsf.mi.service.command.commands.CLISource;
39
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIThread;
40
import org.eclipse.cdt.dsf.mi.service.command.commands.CLITrace;
41
import org.eclipse.cdt.dsf.mi.service.command.commands.CLIUnsetEnv;
42
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakAfter;
43
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakCommands;
44
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakCondition;
45
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakDelete;
46
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakDisable;
47
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakEnable;
48
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakInsert;
49
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakList;
50
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakPasscount;
51
import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakWatch;
52
import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataDisassemble;
53
import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataEvaluateExpression;
54
import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataListRegisterNames;
55
import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataListRegisterValues;
56
import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataReadMemory;
57
import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataWriteMemory;
58
import org.eclipse.cdt.dsf.mi.service.command.commands.MIEnvironmentCD;
59
import org.eclipse.cdt.dsf.mi.service.command.commands.MIEnvironmentDirectory;
60
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecContinue;
61
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecFinish;
62
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecInterrupt;
63
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecJump;
64
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecNext;
65
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecNextInstruction;
66
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReturn;
67
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseContinue;
68
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseNext;
69
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseNextInstruction;
70
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseStep;
71
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseStepInstruction;
72
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecRun;
73
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecStep;
74
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecStepInstruction;
75
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecUncall;
76
import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecUntil;
77
import org.eclipse.cdt.dsf.mi.service.command.commands.MIFileExecAndSymbols;
78
import org.eclipse.cdt.dsf.mi.service.command.commands.MIFileExecFile;
79
import org.eclipse.cdt.dsf.mi.service.command.commands.MIFileSymbolFile;
80
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBExit;
81
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSet;
82
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetArgs;
83
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetAutoSolib;
84
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetEnv;
85
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetNonStop;
86
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetPagination;
87
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetSolibSearchPath;
88
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetTargetAsync;
89
import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBShowExitCode;
90
import org.eclipse.cdt.dsf.mi.service.command.commands.MIInferiorTTYSet;
91
import org.eclipse.cdt.dsf.mi.service.command.commands.MIInterpreterExec;
92
import org.eclipse.cdt.dsf.mi.service.command.commands.MIInterpreterExecConsole;
93
import org.eclipse.cdt.dsf.mi.service.command.commands.MIListThreadGroups;
94
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackInfoDepth;
95
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackListArguments;
96
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackListFrames;
97
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackListLocals;
98
import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackSelectFrame;
99
import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetAttach;
100
import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetDetach;
101
import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetSelect;
102
import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetSelectCore;
103
import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetSelectTFile;
104
import org.eclipse.cdt.dsf.mi.service.command.commands.MIThreadInfo;
105
import org.eclipse.cdt.dsf.mi.service.command.commands.MIThreadListIds;
106
import org.eclipse.cdt.dsf.mi.service.command.commands.MIThreadSelect;
107
import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceDefineVariable;
108
import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceFind;
109
import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceListVariables;
110
import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceSave;
111
import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceStart;
112
import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceStatus;
113
import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceStop;
114
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarAssign;
115
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarCreate;
116
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarDelete;
117
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarEvaluateExpression;
118
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarInfoExpression;
119
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarInfoNumChildren;
120
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarInfoPathExpression;
121
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarInfoType;
122
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarListChildren;
123
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarSetFormat;
124
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarShowAttributes;
125
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarShowFormat;
126
import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarUpdate;
127
import org.eclipse.cdt.dsf.mi.service.command.output.CLICatchInfo;
30
import org.eclipse.cdt.dsf.mi.service.command.output.CLICatchInfo;
128
import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoSharedLibraryInfo;
31
import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoSharedLibraryInfo;
129
import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoThreadsInfo;
32
import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoThreadsInfo;
Lines 172-177 Link Here
172
 */
75
 */
173
public class CommandFactory {
76
public class CommandFactory {
174
77
78
	public ICommand<MIInfo> createCLIAddInferior(ICommandControlDMContext ctx) {
79
		return new CLIAddInferior(ctx);
80
	}
81
	
175
	public ICommand<MIInfo> createCLIAttach(IDMContext ctx, int pid) {
82
	public ICommand<MIInfo> createCLIAttach(IDMContext ctx, int pid) {
176
		return new CLIAttach(ctx, pid);
83
		return new CLIAttach(ctx, pid);
177
	}
84
	}
(-)src/org/eclipse/cdt/dsf/mi/service/command/commands/CLIAddInferior.java (+26 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2008 Ericsson and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Ericsson - Initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.cdt.dsf.mi.service.command.commands;
12
13
import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext;
14
import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo;
15
16
/**
17
 * This command adds a new - null inferior
18
 * TODO Native interface may change.
19
 */
20
public class CLIAddInferior extends CLICommand<MIInfo> {
21
22
	public CLIAddInferior(ICommandControlDMContext ctx) {
23
		super(ctx, "add-inferior "); //$NON-NLS-1$
24
	}
25
	
26
}

Return to bug 237306