From 06345ac843c17f2b7d09ffaa0ac654ca41c90c10 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Tue, 3 Sep 2002 04:14:53 +0000 Subject: [PATCH] Implement interrupt() --- .../eclipse/cdt/debug/mi/core/MIInferior.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java index d49afc24e4d..b551506cdfb 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java @@ -13,10 +13,12 @@ import java.io.PipedOutputStream; import org.eclipse.cdt.debug.mi.core.command.CLICommand; import org.eclipse.cdt.debug.mi.core.command.CommandFactory; import org.eclipse.cdt.debug.mi.core.command.MIExecAbort; +import org.eclipse.cdt.debug.mi.core.command.MIExecInterrupt; import org.eclipse.cdt.debug.mi.core.command.MIGDBShowExitCode; import org.eclipse.cdt.debug.mi.core.event.MIInferiorExitEvent; import org.eclipse.cdt.debug.mi.core.output.MIGDBShowExitCodeInfo; import org.eclipse.cdt.debug.mi.core.output.MIInfo; +import org.eclipse.cdt.utils.spawner.Spawner; /** */ @@ -155,6 +157,23 @@ public class MIInferior extends Process { } } + public void interrupt() { + Process gdb = session.getMIProcess(); + if (gdb instanceof Spawner) { + Spawner gdbSpawner = (Spawner)gdb; + gdbSpawner.interrupt(); + } else { + // Try the exec-interrupt; + CommandFactory factory = session.getCommandFactory(); + MIExecInterrupt interrupt = factory.createMIExecInterrupt(); + try { + session.postCommand(interrupt); + MIInfo info = interrupt.getMIInfo(); + } catch (MIException e) { + } + } + } + public synchronized boolean isSuspended() { return state == SUSPENDED; }