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 190510 Details for
Bug 339047
[non-stop][multi-process] No need to interrupt the inferior in non-stop mode
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]
Fix
zpatch.multiAcceptingCommands.txt (text/plain), 9.59 KB, created by
Marc Khouzam
on 2011-03-06 23:08:21 EST
(
hide
)
Description:
Fix
Filename:
MIME Type:
Creator:
Marc Khouzam
Created:
2011-03-06 23:08:21 EST
Size:
9.59 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.cdt.dsf.gdb >Index: src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java,v >retrieving revision 1.16 >diff -u -r1.16 GDBProcesses.java >--- src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java 2 Mar 2011 14:58:00 -0000 1.16 >+++ src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses.java 7 Mar 2011 03:46:27 -0000 >@@ -43,11 +43,11 @@ > import org.eclipse.cdt.dsf.mi.service.IMIExecutionDMContext; > import org.eclipse.cdt.dsf.mi.service.IMIProcessDMContext; > import org.eclipse.cdt.dsf.mi.service.IMIProcesses; >+import org.eclipse.cdt.dsf.mi.service.IMIRunControl; > 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.MIInferiorProcess; >-import org.eclipse.cdt.dsf.mi.service.command.MIInferiorProcess.State; > import org.eclipse.cdt.dsf.mi.service.command.events.MIStoppedEvent; > import org.eclipse.cdt.dsf.mi.service.command.output.MIBreakInsertInfo; > import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo; >@@ -370,7 +370,8 @@ > @Override > protected void handleSuccess() { > if (getData() instanceof IMIContainerDMContext) { >- if (fGdb.getInferiorProcess().getState() == State.RUNNING) { >+ IMIRunControl runControl = getServicesTracker().getService(IMIRunControl.class); >+ if (runControl != null && !runControl.isTargetAcceptingCommands()) { > fBackend.interrupt(); > } > >Index: src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java,v >retrieving revision 1.39 >diff -u -r1.39 GDBProcesses_7_0.java >--- src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java 2 Mar 2011 14:58:00 -0000 1.39 >+++ src/org/eclipse/cdt/dsf/gdb/service/GDBProcesses_7_0.java 7 Mar 2011 03:46:28 -0000 >@@ -58,11 +58,11 @@ > import org.eclipse.cdt.dsf.mi.service.IMIExecutionDMContext; > import org.eclipse.cdt.dsf.mi.service.IMIProcessDMContext; > import org.eclipse.cdt.dsf.mi.service.IMIProcesses; >+import org.eclipse.cdt.dsf.mi.service.IMIRunControl; > 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.MIInferiorProcess; >-import org.eclipse.cdt.dsf.mi.service.command.MIInferiorProcess.State; > import org.eclipse.cdt.dsf.mi.service.command.events.MIThreadGroupCreatedEvent; > import org.eclipse.cdt.dsf.mi.service.command.events.MIThreadGroupExitedEvent; > import org.eclipse.cdt.dsf.mi.service.command.output.MIConst; >@@ -1134,7 +1134,8 @@ > @Override > protected void handleSuccess() { > if (getData() instanceof IMIContainerDMContext) { >- if (fCommandControl.getInferiorProcess().getState() == State.RUNNING) { >+ IMIRunControl runControl = getServicesTracker().getService(IMIRunControl.class); >+ if (runControl != null && !runControl.isTargetAcceptingCommands()) { > fBackend.interrupt(); > } > >Index: src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java,v >retrieving revision 1.27 >diff -u -r1.27 GDBRunControl_7_0_NS.java >--- src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java 5 Feb 2011 04:27:36 -0000 1.27 >+++ src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java 7 Mar 2011 03:46:28 -0000 >@@ -1481,6 +1481,12 @@ > return MIRunMode.NON_STOP; > } > >+ /** @since 4.0 */ >+ public boolean isTargetAcceptingCommands() { >+ // Always accepting commands in non-stop mode >+ return true; >+ } >+ > /** > * See bug 196154 > * >Index: src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl.java,v >retrieving revision 1.23 >diff -u -r1.23 GDBControl.java >--- src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl.java 2 Mar 2011 11:06:15 -0000 1.23 >+++ src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl.java 7 Mar 2011 03:46:28 -0000 >@@ -39,13 +39,13 @@ > import org.eclipse.cdt.dsf.mi.service.IMIBackend; > import org.eclipse.cdt.dsf.mi.service.IMIBackend.BackendStateChangedEvent; > import org.eclipse.cdt.dsf.mi.service.IMICommandControl; >+import org.eclipse.cdt.dsf.mi.service.IMIRunControl; > import org.eclipse.cdt.dsf.mi.service.command.AbstractCLIProcess; > import org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl; > import org.eclipse.cdt.dsf.mi.service.command.CLIEventProcessor; > import org.eclipse.cdt.dsf.mi.service.command.CommandFactory; > import org.eclipse.cdt.dsf.mi.service.command.MIControlDMContext; > import org.eclipse.cdt.dsf.mi.service.command.MIInferiorProcess; >-import org.eclipse.cdt.dsf.mi.service.command.MIInferiorProcess.State; > import org.eclipse.cdt.dsf.mi.service.command.MIRunControlEventProcessor; > import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo; > import org.eclipse.cdt.dsf.service.DsfServiceEventHandler; >@@ -179,7 +179,8 @@ > // Interrupt GDB in case the inferior is running. > // That way, the inferior will also be killed when we exit GDB. > // >- if (fInferiorProcess.getState() == State.RUNNING) { >+ IMIRunControl runControl = getServicesTracker().getService(IMIRunControl.class); >+ if (runControl != null && !runControl.isTargetAcceptingCommands()) { > fMIBackend.interrupt(); > } > >Index: src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java,v >retrieving revision 1.27 >diff -u -r1.27 GDBControl_7_0.java >--- src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java 2 Mar 2011 11:06:15 -0000 1.27 >+++ src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java 7 Mar 2011 03:46:28 -0000 >@@ -40,13 +40,13 @@ > import org.eclipse.cdt.dsf.mi.service.IMIBackend; > import org.eclipse.cdt.dsf.mi.service.IMIBackend.BackendStateChangedEvent; > import org.eclipse.cdt.dsf.mi.service.IMICommandControl; >+import org.eclipse.cdt.dsf.mi.service.IMIRunControl; > import org.eclipse.cdt.dsf.mi.service.command.AbstractCLIProcess; > import org.eclipse.cdt.dsf.mi.service.command.AbstractMIControl; > import org.eclipse.cdt.dsf.mi.service.command.CLIEventProcessor_7_0; > import org.eclipse.cdt.dsf.mi.service.command.CommandFactory; > import org.eclipse.cdt.dsf.mi.service.command.MIControlDMContext; > import org.eclipse.cdt.dsf.mi.service.command.MIInferiorProcess; >-import org.eclipse.cdt.dsf.mi.service.command.MIInferiorProcess.State; > import org.eclipse.cdt.dsf.mi.service.command.MIRunControlEventProcessor_7_0; > import org.eclipse.cdt.dsf.mi.service.command.output.MIInfo; > import org.eclipse.cdt.dsf.mi.service.command.output.MIListFeaturesInfo; >@@ -183,7 +183,8 @@ > // Interrupt GDB in case the inferior is running. > // That way, the inferior will also be killed when we exit GDB. > // >- if (fInferiorProcess.getState() == State.RUNNING) { >+ IMIRunControl runControl = getServicesTracker().getService(IMIRunControl.class); >+ if (runControl != null && !runControl.isTargetAcceptingCommands()) { > fMIBackend.interrupt(); > } > >Index: src/org/eclipse/cdt/dsf/mi/service/IMIRunControl.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/IMIRunControl.java,v >retrieving revision 1.7 >diff -u -r1.7 IMIRunControl.java >--- src/org/eclipse/cdt/dsf/mi/service/IMIRunControl.java 21 Jan 2011 18:41:09 -0000 1.7 >+++ src/org/eclipse/cdt/dsf/mi/service/IMIRunControl.java 7 Mar 2011 03:46:28 -0000 >@@ -24,6 +24,13 @@ > public interface IMIRunControl extends IRunControl2 > { > /** >+ * Returns true if the target currently accepting commands. >+ * >+ * @since 4.0 >+ */ >+ public boolean isTargetAcceptingCommands(); >+ >+ /** > * Request that the specified steps be executed by first ensuring the target is available > * to receive commands. Once the specified steps are executed, the target should be > * returned to its original availability. >Index: src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java,v >retrieving revision 1.31 >diff -u -r1.31 MIRunControl.java >--- src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java 5 Feb 2011 04:27:35 -0000 1.31 >+++ src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java 7 Mar 2011 03:46:29 -0000 >@@ -1250,4 +1250,14 @@ > public IRunMode getRunMode() { > return MIRunMode.ALL_STOP; > } >+ >+ /** @since 4.0 */ >+ public boolean isTargetAcceptingCommands() { >+ // For all-stop mode: >+ // 1- if GDB is not terminated and >+ // 2- if execution is suspended and >+ // 3- if we didn't just send a resume/stop command, then >+ // we know GDB is accepting commands >+ return !fTerminated && fSuspended && !fResumePending; >+ } > }
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
Flags:
marc.khouzam
:
iplog-
Actions:
View
|
Diff
Attachments on
bug 339047
: 190510