diff --git a/cnd.debugger.common2/src/org/netbeans/modules/cnd/debugger/common2/utils/Executor.java b/cnd.debugger.common2/src/org/netbeans/modules/cnd/debugger/common2/utils/Executor.java --- a/cnd.debugger.common2/src/org/netbeans/modules/cnd/debugger/common2/utils/Executor.java +++ b/cnd.debugger.common2/src/org/netbeans/modules/cnd/debugger/common2/utils/Executor.java @@ -98,6 +98,8 @@ public abstract boolean isAlive(); public abstract void terminate() throws IOException; + + public abstract void interrupt(); public abstract void interrupt(int pid) throws IOException; diff --git a/cnd.debugger.common2/src/org/netbeans/modules/cnd/debugger/common2/utils/ExecutorCND.java b/cnd.debugger.common2/src/org/netbeans/modules/cnd/debugger/common2/utils/ExecutorCND.java --- a/cnd.debugger.common2/src/org/netbeans/modules/cnd/debugger/common2/utils/ExecutorCND.java +++ b/cnd.debugger.common2/src/org/netbeans/modules/cnd/debugger/common2/utils/ExecutorCND.java @@ -126,6 +126,15 @@ } } } + + @Override + public void interrupt() { + try { + CommonTasksSupport.sendSignal(exEnv, pid, Signal.SIGINT, null).get(); + } catch (InterruptedException ex) { + } catch (ExecutionException ex) { + } + } public void interruptGroup() throws IOException { try { diff --git a/cnd.debugger.gdb2/src/org/netbeans/modules/cnd/debugger/gdb2/Gdb.java b/cnd.debugger.gdb2/src/org/netbeans/modules/cnd/debugger/gdb2/Gdb.java --- a/cnd.debugger.gdb2/src/org/netbeans/modules/cnd/debugger/gdb2/Gdb.java +++ b/cnd.debugger.gdb2/src/org/netbeans/modules/cnd/debugger/gdb2/Gdb.java @@ -696,7 +696,7 @@ signalled = true; this.silentStop = silentStop; if (interruptGdb) { - executor.interruptGroup(); + executor.interrupt(); } else { Executor signaller = Executor.getDefault("signaller", factory.host, 0); // NOI18N signaller.interrupt(pid);