mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-30 20:35:38 +02:00
When we detach fire a detachedEvent that
will be transfor to a CDIDisconnectEvent.
This commit is contained in:
parent
417358495f
commit
14a8943722
4 changed files with 57 additions and 5 deletions
|
@ -33,6 +33,7 @@ import org.eclipse.cdt.debug.mi.core.command.MIExecStepInstruction;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MIInfoThreads;
|
import org.eclipse.cdt.debug.mi.core.command.MIInfoThreads;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MITargetDetach;
|
import org.eclipse.cdt.debug.mi.core.command.MITargetDetach;
|
||||||
import org.eclipse.cdt.debug.mi.core.command.MIThreadSelect;
|
import org.eclipse.cdt.debug.mi.core.command.MIThreadSelect;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIDetachedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIThreadExitEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIDataEvaluateExpressionInfo;
|
import org.eclipse.cdt.debug.mi.core.output.MIDataEvaluateExpressionInfo;
|
||||||
import org.eclipse.cdt.debug.mi.core.output.MIDataListRegisterNamesInfo;
|
import org.eclipse.cdt.debug.mi.core.output.MIDataListRegisterNamesInfo;
|
||||||
|
@ -359,11 +360,6 @@ public class CTarget implements ICDITarget {
|
||||||
MICommand noop = new MICommand("");
|
MICommand noop = new MICommand("");
|
||||||
try {
|
try {
|
||||||
mi.getMIInferior().interrupt();
|
mi.getMIInferior().interrupt();
|
||||||
mi.postCommand(noop);
|
|
||||||
MIInfo info = noop.getMIInfo();
|
|
||||||
if (info == null) {
|
|
||||||
throw new CDIException("No answer");
|
|
||||||
}
|
|
||||||
} catch (MIException e) {
|
} catch (MIException e) {
|
||||||
throw new CDIException(e.getMessage());
|
throw new CDIException(e.getMessage());
|
||||||
}
|
}
|
||||||
|
@ -385,6 +381,8 @@ public class CTarget implements ICDITarget {
|
||||||
} catch (MIException e) {
|
} catch (MIException e) {
|
||||||
throw new CDIException(e.getMessage());
|
throw new CDIException(e.getMessage());
|
||||||
}
|
}
|
||||||
|
MISession miSession = session.getMISession();
|
||||||
|
miSession.fireEvent(new MIDetachedEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package org.eclipse.cdt.debug.mi.core.cdi;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.event.ICDIDisconnectedEvent;
|
||||||
|
import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
public class DisconnectedEvent implements ICDIDisconnectedEvent {
|
||||||
|
|
||||||
|
ICDIObject source;
|
||||||
|
|
||||||
|
public DisconnectedEvent(CSession session) {
|
||||||
|
source = (ICDIObject)session.getCTarget();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see org.eclipse.cdt.debug.core..ICDIEvent#getSource()
|
||||||
|
*/
|
||||||
|
public ICDIObject getSource() {
|
||||||
|
return source;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -16,6 +16,7 @@ import org.eclipse.cdt.debug.core.cdi.ICDIEventManager;
|
||||||
import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
|
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.event.ICDIEventListener;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIBreakpointEvent;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.event.MIDetachedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIFunctionFinishedEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIFunctionFinishedEvent;
|
||||||
import org.eclipse.cdt.debug.mi.core.event.MIGDBExitEvent;
|
import org.eclipse.cdt.debug.mi.core.event.MIGDBExitEvent;
|
||||||
|
@ -63,6 +64,8 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
||||||
cdiEvent = new ExitedEvent(session, (MIInferiorExitEvent)miEvent);
|
cdiEvent = new ExitedEvent(session, (MIInferiorExitEvent)miEvent);
|
||||||
} else if (miEvent instanceof MIGDBExitEvent) {
|
} else if (miEvent instanceof MIGDBExitEvent) {
|
||||||
cdiEvent = new DestroyedEvent(session);
|
cdiEvent = new DestroyedEvent(session);
|
||||||
|
} else if (miEvent instanceof MIDetachedEvent) {
|
||||||
|
cdiEvent = new DisconnectedEvent(session);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fire the event;
|
// Fire the event;
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/*
|
||||||
|
* (c) Copyright QNX Software Systems Ltd. 2002.
|
||||||
|
* All Rights Reserved.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.eclipse.cdt.debug.mi.core.event;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIConst;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIExecAsyncOutput;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIFrame;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIResult;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIResultRecord;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MITuple;
|
||||||
|
import org.eclipse.cdt.debug.mi.core.output.MIValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* ^running
|
||||||
|
*/
|
||||||
|
public class MIDetachedEvent extends MIEvent {
|
||||||
|
|
||||||
|
public MIDetachedEvent() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
return "Detached";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue