diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java index 8b55ef4b76b..a6ba138d9c7 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/EventManager.java @@ -40,6 +40,9 @@ import org.eclipse.cdt.debug.mi.core.event.MIMemoryCreatedEvent; import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent; import org.eclipse.cdt.debug.mi.core.event.MIRegisterCreatedEvent; import org.eclipse.cdt.debug.mi.core.event.MIRunningEvent; +import org.eclipse.cdt.debug.mi.core.event.MISharedLibChangedEvent; +import org.eclipse.cdt.debug.mi.core.event.MISharedLibCreatedEvent; +import org.eclipse.cdt.debug.mi.core.event.MISharedLibUnloadedEvent; import org.eclipse.cdt.debug.mi.core.event.MIStoppedEvent; import org.eclipse.cdt.debug.mi.core.event.MIThreadCreatedEvent; import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent; @@ -107,6 +110,8 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs } catch (CDIException e) { } } + } else if (miEvent instanceof MISharedLibChangedEvent) { + cdiList.add(new ChangedEvent(session, (MISharedLibChangedEvent)miEvent)); } } else if (miEvent instanceof MIDestroyedEvent) { if (miEvent instanceof MIThreadExitEvent) { @@ -129,6 +134,8 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs } catch (CDIException e) { } } + } else if (miEvent instanceof MISharedLibUnloadedEvent) { + cdiList.add(new DestroyedEvent(session, (MISharedLibUnloadedEvent)miEvent)); } } else if (miEvent instanceof MICreatedEvent) { if (miEvent instanceof MIBreakpointCreatedEvent) { @@ -151,6 +158,8 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs cdiList.add(new CreatedEvent(session, (MIThreadCreatedEvent)miEvent)); } else if (miEvent instanceof MIMemoryCreatedEvent) { cdiList.add(new CreatedEvent(session, (MIMemoryCreatedEvent)miEvent)); + } else if (miEvent instanceof MISharedLibCreatedEvent) { + cdiList.add(new CreatedEvent(session, (MISharedLibCreatedEvent)miEvent)); } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java index d7962a0ac2c..90e9f78a8ba 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/ChangedEvent.java @@ -8,14 +8,17 @@ import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.event.ICDIChangedEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint; import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary; import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager; import org.eclipse.cdt.debug.mi.core.cdi.CSession; import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager; +import org.eclipse.cdt.debug.mi.core.cdi.SharedLibraryManager; import org.eclipse.cdt.debug.mi.core.cdi.VariableManager; import org.eclipse.cdt.debug.mi.core.cdi.model.CObject; import org.eclipse.cdt.debug.mi.core.cdi.model.Register; import org.eclipse.cdt.debug.mi.core.event.MIBreakpointChangedEvent; import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent; +import org.eclipse.cdt.debug.mi.core.event.MISharedLibChangedEvent; import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent; /** @@ -65,6 +68,18 @@ public class ChangedEvent implements ICDIChangedEvent { } } + public ChangedEvent(CSession s, MISharedLibChangedEvent slib) { + session = s; + SharedLibraryManager mgr = (SharedLibraryManager)session.getSharedLibraryManager(); + String name = slib.getName(); + ICDISharedLibrary lib = mgr.getSharedLibrary(name); + if (lib != null) { + source = lib; + } else { + source = new CObject(session.getCTarget()); + } + } + public ChangedEvent(CSession s, ICDIObject src) { session = s; source = src; diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java index 11a07d8aaa8..4181bd58440 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/CreatedEvent.java @@ -9,11 +9,13 @@ import org.eclipse.cdt.debug.core.cdi.event.ICDICreatedEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDIBreakpoint; import org.eclipse.cdt.debug.core.cdi.model.ICDIMemoryBlock; import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary; import org.eclipse.cdt.debug.core.cdi.model.ICDIThread; import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager; import org.eclipse.cdt.debug.mi.core.cdi.CSession; import org.eclipse.cdt.debug.mi.core.cdi.MemoryManager; import org.eclipse.cdt.debug.mi.core.cdi.RegisterManager; +import org.eclipse.cdt.debug.mi.core.cdi.SharedLibraryManager; import org.eclipse.cdt.debug.mi.core.cdi.VariableManager; import org.eclipse.cdt.debug.mi.core.cdi.model.CObject; import org.eclipse.cdt.debug.mi.core.cdi.model.CTarget; @@ -21,6 +23,7 @@ import org.eclipse.cdt.debug.mi.core.cdi.model.Register; import org.eclipse.cdt.debug.mi.core.event.MIBreakpointCreatedEvent; import org.eclipse.cdt.debug.mi.core.event.MIMemoryCreatedEvent; import org.eclipse.cdt.debug.mi.core.event.MIRegisterCreatedEvent; +import org.eclipse.cdt.debug.mi.core.event.MISharedLibCreatedEvent; import org.eclipse.cdt.debug.mi.core.event.MIThreadCreatedEvent; import org.eclipse.cdt.debug.mi.core.event.MIVarCreatedEvent; @@ -98,6 +101,18 @@ public class CreatedEvent implements ICDICreatedEvent { } } + public CreatedEvent(CSession s, MISharedLibCreatedEvent slib) { + session = s; + SharedLibraryManager mgr = (SharedLibraryManager)session.getSharedLibraryManager(); + String name = slib.getName(); + ICDISharedLibrary lib = mgr.getSharedLibrary(name); + if (lib != null) { + source = lib; + } else { + source = new CObject(session.getCTarget()); + } + } + public CreatedEvent(CSession s, ICDIObject src) { session = s; source = src; diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java index ee2d1686775..ee9eae105e3 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/event/DestroyedEvent.java @@ -7,13 +7,16 @@ package org.eclipse.cdt.debug.mi.core.cdi.event; import org.eclipse.cdt.debug.core.cdi.event.ICDIDestroyedEvent; import org.eclipse.cdt.debug.core.cdi.model.ICDIObject; +import org.eclipse.cdt.debug.core.cdi.model.ICDISharedLibrary; import org.eclipse.cdt.debug.mi.core.cdi.BreakpointManager; import org.eclipse.cdt.debug.mi.core.cdi.CSession; +import org.eclipse.cdt.debug.mi.core.cdi.SharedLibraryManager; import org.eclipse.cdt.debug.mi.core.cdi.VariableManager; import org.eclipse.cdt.debug.mi.core.cdi.model.Breakpoint; import org.eclipse.cdt.debug.mi.core.cdi.model.CObject; import org.eclipse.cdt.debug.mi.core.cdi.model.CThread; import org.eclipse.cdt.debug.mi.core.event.MIBreakpointDeletedEvent; +import org.eclipse.cdt.debug.mi.core.event.MISharedLibUnloadedEvent; import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent; import org.eclipse.cdt.debug.mi.core.event.MIVarChangedEvent; @@ -53,6 +56,18 @@ public class DestroyedEvent implements ICDIDestroyedEvent { } } + public DestroyedEvent(CSession s, MISharedLibUnloadedEvent slib) { + session = s; + SharedLibraryManager mgr = (SharedLibraryManager)session.getSharedLibraryManager(); + String name = slib.getName(); + ICDISharedLibrary lib = mgr.getSharedLibrary(name); + if (lib != null) { + source = lib; + } else { + source = new CObject(session.getCTarget()); + } + } + public DestroyedEvent(CSession s, ICDIObject src) { session = s; source = src;