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 166478 Details for
Bug 237306
[multicore][multi-process] Support for Multi-Process debugging
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]
Multi-exec support for DSF
patch2.txt (text/plain), 14.10 KB, created by
Onur Akdemir
on 2010-04-29 09:32:19 EDT
(
hide
)
Description:
Multi-exec support for DSF
Filename:
MIME Type:
Creator:
Onur Akdemir
Created:
2010-04-29 09:32:19 EDT
Size:
14.10 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.cdt.dsf.gdb >Index: src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_1.java >=================================================================== >RCS file: src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_1.java >diff -N src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_1.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_1.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,70 @@ >+package org.eclipse.cdt.dsf.gdb.service; >+ >+import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; >+import org.eclipse.cdt.dsf.concurrent.RequestMonitor; >+import org.eclipse.cdt.dsf.datamodel.DMContexts; >+import org.eclipse.cdt.dsf.datamodel.IDMContext; >+import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext; >+import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin; >+import org.eclipse.cdt.dsf.gdb.service.command.IGDBControl; >+import org.eclipse.cdt.dsf.mi.service.IMIContainerDMContext; >+import org.eclipse.cdt.dsf.mi.service.IMIProcessDMContext; >+import org.eclipse.cdt.dsf.mi.service.command.CommandFactory; >+import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo; >+import org.eclipse.cdt.dsf.service.DsfSession; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Status; >+ >+public class GDBProcesses_7_1 extends GDBProcesses_7_0 { >+ >+ private IGDBControl fCommandControl; >+ private CommandFactory fCommandFactory; >+ >+ @Override >+ public void initialize(RequestMonitor requestMonitor) { >+ // TODO Auto-generated method stub >+ super.initialize(requestMonitor); >+ } >+ >+ public GDBProcesses_7_1(DsfSession session) { >+ super(session); >+ // TODO Auto-generated constructor stub >+ } >+ >+ // GDB 7.1 supports Multi-exec ( multi-process) debug. >+ public boolean isDebugMultiProcessSupported() { >+ return true; >+ } >+ >+ /* >+ * GDB 7.1 add-inferior command adds a new and null inferior >+ * >+ */ >+ public void addNewInferior(final IProcessDMContext procCtx, final DataRequestMonitor<IDMContext> rm) { >+ if (procCtx instanceof IMIProcessDMContext) { >+ if (!isDebugMultiProcessSupported()) { >+ rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, INTERNAL_ERROR, "Multi-process debug not supported.", null)); //$NON-NLS-1$ >+ rm.done(); >+ return; >+ } >+ >+ ICommandControlDMContext controlDmc = DMContexts.getAncestorOfType(procCtx, ICommandControlDMContext.class); >+ fCommandControl.queueCommand( >+ fCommandFactory.createCLIAddInferior( controlDmc ), >+ new DataRequestMonitor<MIInfo>(getExecutor(), rm) { >+ @Override >+ protected void handleSuccess() { >+ IMIContainerDMContext containerDmc = createContainerContext(procCtx, >+ ((IMIProcessDMContext)procCtx).getProcId()); >+ rm.setData(containerDmc); >+ rm.done(); >+ } >+ }); >+ >+ } else { >+ rm.setStatus(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, INTERNAL_ERROR, "Invalid process context.", null)); //$NON-NLS-1$ >+ rm.done(); >+ } >+ } >+ >+} >Index: src/org/eclipse/cdt/dsf/gdb/service/GdbDebugServicesFactory.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GdbDebugServicesFactory.java,v >retrieving revision 1.11 >diff -u -r1.11 GdbDebugServicesFactory.java >--- src/org/eclipse/cdt/dsf/gdb/service/GdbDebugServicesFactory.java 28 Apr 2010 23:50:48 -0000 1.11 >+++ src/org/eclipse/cdt/dsf/gdb/service/GdbDebugServicesFactory.java 29 Apr 2010 12:49:45 -0000 >@@ -45,6 +45,7 @@ > // This should eventually be "7.0" once GDB 7.0 is released > private static final String GDB_7_0_VERSION = "6.8.50.20090218"; //$NON-NLS-1$ > private static final String GDB_7_2_VERSION = "7.1.50"; //$NON-NLS-1$ >+ private static final String GDB_7_1_VERSION = "7.1.00"; //$NON-NLS-1$ > > private final String fVersion; > >@@ -133,7 +134,9 @@ > > @Override > protected IProcesses createProcessesService(DsfSession session) { >- if (GDB_7_0_VERSION.compareTo(fVersion) <= 0) { >+ if (GDB_7_1_VERSION.compareTo(fVersion) <= 0) { >+ return new GDBProcesses_7_1(session); >+ }else if (GDB_7_0_VERSION.compareTo(fVersion) <= 0) { > return new GDBProcesses_7_0(session); > } > return new GDBProcesses(session); >Index: src/org/eclipse/cdt/dsf/mi/service/command/CommandFactory.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/CommandFactory.java,v >retrieving revision 1.5 >diff -u -r1.5 CommandFactory.java >--- src/org/eclipse/cdt/dsf/mi/service/command/CommandFactory.java 28 Apr 2010 23:50:49 -0000 1.5 >+++ src/org/eclipse/cdt/dsf/mi/service/command/CommandFactory.java 29 Apr 2010 12:49:45 -0000 >@@ -26,104 +26,7 @@ > import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService.ICommandControlDMContext; > import org.eclipse.cdt.dsf.gdb.service.IGDBTraceControl.ITraceTargetDMContext; > import org.eclipse.cdt.dsf.mi.service.IMIExecutionDMContext; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIAttach; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLICatch; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIDetach; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIExecAbort; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIInfoSharedLibrary; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIInfoThreads; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIJump; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIPasscount; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIRecord; >-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.CLITrace; >-import org.eclipse.cdt.dsf.mi.service.command.commands.CLIUnsetEnv; >-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.MIBreakCondition; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakDelete; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakDisable; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakEnable; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakInsert; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakList; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakPasscount; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakWatch; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataDisassemble; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataEvaluateExpression; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataListRegisterNames; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataListRegisterValues; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataReadMemory; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIDataWriteMemory; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIEnvironmentCD; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIEnvironmentDirectory; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecContinue; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecFinish; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecInterrupt; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecJump; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecNext; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecNextInstruction; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReturn; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseContinue; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseNext; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseNextInstruction; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseStep; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecReverseStepInstruction; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecRun; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecStep; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecStepInstruction; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecUncall; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIExecUntil; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIFileExecAndSymbols; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIFileExecFile; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIFileSymbolFile; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBExit; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSet; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetArgs; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetAutoSolib; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetEnv; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetNonStop; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetPagination; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetSolibSearchPath; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBSetTargetAsync; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIGDBShowExitCode; >-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.MIInterpreterExecConsole; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIListThreadGroups; >-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.MIStackListFrames; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackListLocals; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIStackSelectFrame; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetAttach; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetDetach; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetSelect; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetSelectCore; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITargetSelectTFile; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIThreadInfo; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIThreadListIds; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIThreadSelect; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceDefineVariable; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceFind; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceListVariables; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceSave; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceStart; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceStatus; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MITraceStop; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarAssign; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarCreate; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarDelete; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarEvaluateExpression; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarInfoExpression; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarInfoNumChildren; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarInfoPathExpression; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarInfoType; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarListChildren; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarSetFormat; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarShowAttributes; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarShowFormat; >-import org.eclipse.cdt.dsf.mi.service.command.commands.MIVarUpdate; >+import org.eclipse.cdt.dsf.mi.service.command.commands.*; > import org.eclipse.cdt.dsf.mi.service.command.output.CLICatchInfo; > import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoSharedLibraryInfo; > import org.eclipse.cdt.dsf.mi.service.command.output.CLIInfoThreadsInfo; >@@ -172,6 +75,10 @@ > */ > public class CommandFactory { > >+ public ICommand<MIInfo> createCLIAddInferior(ICommandControlDMContext ctx) { >+ return new CLIAddInferior(ctx); >+ } >+ > public ICommand<MIInfo> createCLIAttach(IDMContext ctx, int pid) { > return new CLIAttach(ctx, pid); > } >Index: src/org/eclipse/cdt/dsf/mi/service/command/commands/CLIAddInferior.java >=================================================================== >RCS file: src/org/eclipse/cdt/dsf/mi/service/command/commands/CLIAddInferior.java >diff -N src/org/eclipse/cdt/dsf/mi/service/command/commands/CLIAddInferior.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/cdt/dsf/mi/service/command/commands/CLIAddInferior.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,26 @@ >+/******************************************************************************* >+ * Copyright (c) 2008 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; >+ >+/** >+ * This command adds a new - null inferior >+ * TODO Native interface may change. >+ */ >+public class CLIAddInferior extends CLICommand<MIInfo> { >+ >+ public CLIAddInferior(ICommandControlDMContext ctx) { >+ super(ctx, "add-inferior "); //$NON-NLS-1$ >+ } >+ >+}
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 237306
:
166478
|
167440
|
168092
|
168093
|
168510
|
176501
|
178929
|
179595
|
179596
|
179913
|
182593
|
184318
|
185285
|
185617
|
185691
|
186266
|
187326
|
187357
|
190931
|
190997