mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
catch MIInferiorSignalExitEvent.
This commit is contained in:
parent
d83e7027dc
commit
c89cc3f9e9
3 changed files with 29 additions and 6 deletions
|
@ -23,6 +23,7 @@ import org.eclipse.cdt.debug.mi.core.event.MIErrorEvent;
|
|||
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.MIInferiorExitEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIInferiorSignalExitEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MILocationReachedEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIRunningEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MISignalEvent;
|
||||
|
@ -374,7 +375,6 @@ public class RxThread extends Thread {
|
|||
}
|
||||
session.getMIInferior().setSuspended();
|
||||
} else if ("exited-normally".equals(reason) ||
|
||||
"exited-signalled".equals(reason) ||
|
||||
"exited".equals(reason)) {
|
||||
if (exec != null) {
|
||||
event = new MIInferiorExitEvent(exec);
|
||||
|
@ -382,6 +382,13 @@ public class RxThread extends Thread {
|
|||
event = new MIInferiorExitEvent(rr);
|
||||
}
|
||||
session.getMIInferior().setTerminated();
|
||||
} else if ("exited-signalled".equals(reason)) {
|
||||
if (exec != null) {
|
||||
event = new MIInferiorSignalExitEvent(exec);
|
||||
} else if (rr != null) {
|
||||
event = new MIInferiorSignalExitEvent(rr);
|
||||
}
|
||||
session.getMIInferior().setTerminated();
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ 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.MIGDBExitEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIInferiorExitEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIInferiorSignalExitEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIMemoryChangedEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIMemoryCreatedEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIRegisterChangedEvent;
|
||||
|
@ -139,6 +140,8 @@ public class EventManager extends SessionObject implements ICDIEventManager, Obs
|
|||
} else if (miEvent instanceof MIDestroyedEvent) {
|
||||
if (miEvent instanceof MIThreadExitEvent) {
|
||||
cdiList.add(new DestroyedEvent(session,(MIThreadExitEvent)miEvent));
|
||||
} else if (miEvent instanceof MIInferiorSignalExitEvent) {
|
||||
cdiList.add(new ExitedEvent(session, (MIInferiorSignalExitEvent)miEvent));
|
||||
} else if (miEvent instanceof MIInferiorExitEvent) {
|
||||
cdiList.add(new ExitedEvent(session, (MIInferiorExitEvent)miEvent));
|
||||
} else if (miEvent instanceof MIGDBExitEvent) {
|
||||
|
|
|
@ -5,30 +5,43 @@
|
|||
*/
|
||||
package org.eclipse.cdt.debug.mi.core.cdi.event;
|
||||
|
||||
import org.eclipse.cdt.debug.core.cdi.ICDIExitInfo;
|
||||
import org.eclipse.cdt.debug.core.cdi.ICDISessionObject;
|
||||
import org.eclipse.cdt.debug.core.cdi.event.ICDIExitedEvent;
|
||||
import org.eclipse.cdt.debug.core.cdi.model.ICDIObject;
|
||||
import org.eclipse.cdt.debug.mi.core.cdi.Session;
|
||||
import org.eclipse.cdt.debug.mi.core.cdi.ExitInfo;
|
||||
import org.eclipse.cdt.debug.mi.core.cdi.Session;
|
||||
import org.eclipse.cdt.debug.mi.core.cdi.SignalExitInfo;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIInferiorExitEvent;
|
||||
import org.eclipse.cdt.debug.mi.core.event.MIInferiorSignalExitEvent;
|
||||
|
||||
/**
|
||||
*/
|
||||
public class ExitedEvent implements ICDIExitedEvent {
|
||||
|
||||
MIInferiorExitEvent event;
|
||||
MIEvent event;
|
||||
Session session;
|
||||
|
||||
public ExitedEvent(Session s, MIInferiorExitEvent e) {
|
||||
session = s;
|
||||
event = e;
|
||||
}
|
||||
|
||||
public ExitedEvent(Session s, MIInferiorSignalExitEvent e) {
|
||||
session = s;
|
||||
event = e;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.cdt.debug.core.cdi.event.ICDIExitedEvent#getExitInfo()
|
||||
*/
|
||||
public ICDIExitInfo getExitInfo() {
|
||||
return new ExitInfo(session, event);
|
||||
public ICDISessionObject getReason() {
|
||||
if (event instanceof MIInferiorExitEvent) {
|
||||
return new ExitInfo(session, (MIInferiorExitEvent)event);
|
||||
} else if (event instanceof MIInferiorSignalExitEvent) {
|
||||
return new SignalExitInfo(session, (MIInferiorSignalExitEvent)event);
|
||||
}
|
||||
return session;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue