1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-30 04:15:35 +02:00

When we detach fire a detachedEvent that

will be transfor to a CDIDisconnectEvent.
This commit is contained in:
Alain Magloire 2002-09-27 19:23:01 +00:00
parent 417358495f
commit 14a8943722
4 changed files with 57 additions and 5 deletions

View file

@ -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.MITargetDetach;
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.output.MIDataEvaluateExpressionInfo;
import org.eclipse.cdt.debug.mi.core.output.MIDataListRegisterNamesInfo;
@ -359,11 +360,6 @@ public class CTarget implements ICDITarget {
MICommand noop = new MICommand("");
try {
mi.getMIInferior().interrupt();
mi.postCommand(noop);
MIInfo info = noop.getMIInfo();
if (info == null) {
throw new CDIException("No answer");
}
} catch (MIException e) {
throw new CDIException(e.getMessage());
}
@ -385,6 +381,8 @@ public class CTarget implements ICDITarget {
} catch (MIException e) {
throw new CDIException(e.getMessage());
}
MISession miSession = session.getMISession();
miSession.fireEvent(new MIDetachedEvent());
}
/**

View file

@ -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;
}
}

View file

@ -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.ICDIEventListener;
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.MIFunctionFinishedEvent;
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);
} else if (miEvent instanceof MIGDBExitEvent) {
cdiEvent = new DestroyedEvent(session);
} else if (miEvent instanceof MIDetachedEvent) {
cdiEvent = new DisconnectedEvent(session);
}
// Fire the event;

View file

@ -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";
}
}