diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IDisassemblyLine.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IDisassemblyLine.java
index 1d899d4f3ac..64d7eea02e7 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IDisassemblyLine.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/model/IDisassemblyLine.java
@@ -15,6 +15,6 @@ package org.eclipse.cdt.debug.core.model;
* org.eclipse.cdt.debug.core.model.IDisassemblyLine:
* //TODO Add description.
*/
-public interface IDisassemblyLine {
+public interface IDisassemblyLine extends ICDebugElement {
}
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/DisassemblyRetrieval.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/DisassemblyRetrieval.java
index 7f9fa9a5ad0..dffb34b59ec 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/DisassemblyRetrieval.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/DisassemblyRetrieval.java
@@ -19,9 +19,15 @@ import java.util.List;
import org.eclipse.cdt.core.IAddressFactory;
import org.eclipse.cdt.debug.core.CDebugCorePlugin;
import org.eclipse.cdt.debug.core.cdi.CDIException;
+import org.eclipse.cdt.debug.core.cdi.event.ICDIBreakpointMovedEvent;
+import org.eclipse.cdt.debug.core.cdi.event.ICDIBreakpointProblemEvent;
+import org.eclipse.cdt.debug.core.cdi.event.ICDIChangedEvent;
+import org.eclipse.cdt.debug.core.cdi.event.ICDICreatedEvent;
+import org.eclipse.cdt.debug.core.cdi.event.ICDIDestroyedEvent;
import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
import org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener;
import org.eclipse.cdt.debug.core.cdi.model.ICDIInstruction;
+import org.eclipse.cdt.debug.core.cdi.model.ICDILocationBreakpoint;
import org.eclipse.cdt.debug.core.cdi.model.ICDIMixedInstruction;
import org.eclipse.cdt.debug.core.cdi.model.ICDITarget;
import org.eclipse.cdt.debug.core.model.ICStackFrame;
@@ -30,6 +36,7 @@ import org.eclipse.cdt.debug.core.model.IDisassemblyLine;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException;
public class DisassemblyRetrieval extends CDebugElement implements ICDIEventListener {
@@ -58,10 +65,38 @@ public class DisassemblyRetrieval extends CDebugElement implements ICDIEventList
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener#handleDebugEvents(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent[])
*/
- public void handleDebugEvents( ICDIEvent[] event ) {
- // TODO Auto-generated method stub
+ public void handleDebugEvents( ICDIEvent[] events ) {
+ for ( ICDIEvent event : events ) {
+ Object source = event.getSource();
+ if ( (event instanceof ICDICreatedEvent
+ || event instanceof ICDIChangedEvent
+ || event instanceof ICDIDestroyedEvent
+ || event instanceof ICDIBreakpointMovedEvent
+ || event instanceof ICDIBreakpointProblemEvent )
+ && source instanceof ICDILocationBreakpoint ) {
+ BigInteger address = ((ICDILocationBreakpoint)source).getLocator().getAddress();
+ if ( address != null ) {
+ int index = getIndexForAddress( address, fLines );
+ if ( index >= 0 ) {
+ fireEvent( new DebugEvent( fLines[index], DebugEvent.CHANGE, DebugEvent.STATE ) );
+ }
+ if ( event instanceof ICDIBreakpointMovedEvent ) {
+ address = ((ICDIBreakpointMovedEvent)event).getNewLocation().getAddress();
+ if ( address != null ) {
+ index = getIndexForAddress( address, fLines );
+ if ( index >= 0 ) {
+ fireEvent( new DebugEvent( fLines[index], DebugEvent.CHANGE, DebugEvent.STATE ) );
+ }
+ }
+ }
+ }
+ }
+ }
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.debug.core.model.IDisassemblyRetrieval#getInput()
+ */
public Object getInput() {
return fInput;
}
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index 5257168a3b9..cf003686cfd 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -1354,6 +1354,16 @@
+
+
+
+
+
+