mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bug 388793: Breakpoint actions do not work with non-stop mode
Change-Id: I18180149199819106909d5f3db51dd7270bf9937
This commit is contained in:
parent
4b2232f88e
commit
763aebdd14
4 changed files with 41 additions and 15 deletions
11
dsf-gdb/org.eclipse.cdt.dsf.gdb/.settings/.api_filters
Normal file
11
dsf-gdb/org.eclipse.cdt.dsf.gdb/.settings/.api_filters
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<component id="org.eclipse.cdt.dsf.gdb" version="2">
|
||||||
|
<resource path="META-INF/MANIFEST.MF">
|
||||||
|
<filter id="924844039">
|
||||||
|
<message_arguments>
|
||||||
|
<message_argument value="4.1.1"/>
|
||||||
|
<message_argument value="4.1.0"/>
|
||||||
|
</message_arguments>
|
||||||
|
</filter>
|
||||||
|
</resource>
|
||||||
|
</component>
|
|
@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Bundle-SymbolicName: org.eclipse.cdt.dsf.gdb;singleton:=true
|
Bundle-SymbolicName: org.eclipse.cdt.dsf.gdb;singleton:=true
|
||||||
Bundle-Version: 4.1.0.qualifier
|
Bundle-Version: 4.1.1.qualifier
|
||||||
Bundle-Activator: org.eclipse.cdt.dsf.gdb.internal.GdbPlugin
|
Bundle-Activator: org.eclipse.cdt.dsf.gdb.internal.GdbPlugin
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
Require-Bundle: org.eclipse.core.runtime,
|
Require-Bundle: org.eclipse.core.runtime,
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<relativePath>../../pom.xml</relativePath>
|
<relativePath>../../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<version>4.1.0-SNAPSHOT</version>
|
<version>4.1.1-SNAPSHOT</version>
|
||||||
<artifactId>org.eclipse.cdt.dsf.gdb</artifactId>
|
<artifactId>org.eclipse.cdt.dsf.gdb</artifactId>
|
||||||
<packaging>eclipse-plugin</packaging>
|
<packaging>eclipse-plugin</packaging>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -54,6 +54,7 @@ import org.eclipse.cdt.dsf.debug.service.IDsfBreakpointExtension;
|
||||||
import org.eclipse.cdt.dsf.debug.service.IRunControl;
|
import org.eclipse.cdt.dsf.debug.service.IRunControl;
|
||||||
import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext;
|
import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext;
|
||||||
import org.eclipse.cdt.dsf.debug.service.IRunControl.IExecutionDMContext;
|
import org.eclipse.cdt.dsf.debug.service.IRunControl.IExecutionDMContext;
|
||||||
|
import org.eclipse.cdt.dsf.debug.service.IRunControl.ISuspendedDMEvent;
|
||||||
import org.eclipse.cdt.dsf.debug.service.ISourceLookup;
|
import org.eclipse.cdt.dsf.debug.service.ISourceLookup;
|
||||||
import org.eclipse.cdt.dsf.debug.service.ISourceLookup.ISourceLookupDMContext;
|
import org.eclipse.cdt.dsf.debug.service.ISourceLookup.ISourceLookupDMContext;
|
||||||
import org.eclipse.cdt.dsf.debug.service.command.ICommandControl;
|
import org.eclipse.cdt.dsf.debug.service.command.ICommandControl;
|
||||||
|
@ -65,6 +66,7 @@ import org.eclipse.cdt.dsf.mi.service.MIBreakpoints.BreakpointUpdatedEvent;
|
||||||
import org.eclipse.cdt.dsf.mi.service.MIBreakpoints.MIBreakpointDMContext;
|
import org.eclipse.cdt.dsf.mi.service.MIBreakpoints.MIBreakpointDMContext;
|
||||||
import org.eclipse.cdt.dsf.mi.service.MIRunControl.SuspendedEvent;
|
import org.eclipse.cdt.dsf.mi.service.MIRunControl.SuspendedEvent;
|
||||||
import org.eclipse.cdt.dsf.mi.service.breakpoint.actions.BreakpointActionAdapter;
|
import org.eclipse.cdt.dsf.mi.service.breakpoint.actions.BreakpointActionAdapter;
|
||||||
|
import org.eclipse.cdt.dsf.mi.service.command.events.IMIDMEvent;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.events.MIBreakpointHitEvent;
|
import org.eclipse.cdt.dsf.mi.service.command.events.MIBreakpointHitEvent;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.events.MIWatchpointScopeEvent;
|
import org.eclipse.cdt.dsf.mi.service.command.events.MIWatchpointScopeEvent;
|
||||||
import org.eclipse.cdt.dsf.mi.service.command.events.MIWatchpointTriggerEvent;
|
import org.eclipse.cdt.dsf.mi.service.command.events.MIWatchpointTriggerEvent;
|
||||||
|
@ -1340,21 +1342,34 @@ public class MIBreakpointsManager extends AbstractDsfService implements IBreakpo
|
||||||
// Breakpoint actions
|
// Breakpoint actions
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/** @since 4.1 */
|
||||||
@DsfServiceEventHandler
|
@DsfServiceEventHandler
|
||||||
|
public void eventDispatched(ISuspendedDMEvent e) {
|
||||||
|
assert e instanceof IMIDMEvent;
|
||||||
|
if (e instanceof IMIDMEvent) {
|
||||||
|
Object miEvent = ((IMIDMEvent)e).getMIEvent();
|
||||||
|
|
||||||
|
if (miEvent instanceof MIBreakpointHitEvent) {
|
||||||
|
// This covers catchpoints, too
|
||||||
|
MIBreakpointHitEvent evt = (MIBreakpointHitEvent)miEvent;
|
||||||
|
performBreakpointAction(evt.getDMContext(), evt.getNumber());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (miEvent instanceof MIWatchpointTriggerEvent) {
|
||||||
|
MIWatchpointTriggerEvent evt = (MIWatchpointTriggerEvent)miEvent;
|
||||||
|
performBreakpointAction(evt.getDMContext(), evt.getNumber());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Replaced by the generic {@link #eventDispatched(ISuspendedDMEvent)}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
@DsfServiceEventHandler
|
||||||
public void eventDispatched(SuspendedEvent e) {
|
public void eventDispatched(SuspendedEvent e) {
|
||||||
|
|
||||||
if (e.getMIEvent() instanceof MIBreakpointHitEvent) {
|
|
||||||
// This covers catchpoints, too
|
|
||||||
MIBreakpointHitEvent evt = (MIBreakpointHitEvent) e.getMIEvent();
|
|
||||||
performBreakpointAction(evt.getDMContext(), evt.getNumber());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e.getMIEvent() instanceof MIWatchpointTriggerEvent) {
|
|
||||||
MIWatchpointTriggerEvent evt = (MIWatchpointTriggerEvent) e.getMIEvent();
|
|
||||||
performBreakpointAction(evt.getDMContext(), evt.getNumber());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void performBreakpointAction(final IDMContext context, int number) {
|
private void performBreakpointAction(final IDMContext context, int number) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue