diff --git a/src/plugins/debugger/gdb/localgdbprocess.cpp b/src/plugins/debugger/gdb/localgdbprocess.cpp
index 48ad8f0ea496a54c798699c4439deae76bf7855c..0db4d7906df59d9c2c8768ecdc47fe0df36ac250 100644
--- a/src/plugins/debugger/gdb/localgdbprocess.cpp
+++ b/src/plugins/debugger/gdb/localgdbprocess.cpp
@@ -32,14 +32,16 @@
 
 #include "localgdbprocess.h"
 
-#include <utils/qtcassert.h>
+#include "procinterrupt.h"
+#include "debuggerconstants.h"
 
-#ifdef Q_OS_UNIX
-#include <errno.h>
-#include <signal.h>
-#include <string.h>
+#ifdef Q_OS_WIN
+#include <utils/winutils.h>
 #endif
 
+#include <utils/qtcassert.h>
+
+
 namespace Debugger {
 namespace Internal {
 
@@ -87,16 +89,13 @@ void LocalGdbProcess::kill()
 
 bool LocalGdbProcess::interrupt()
 {
-#ifdef Q_OS_UNIX
-    Q_PID pid = m_gdbProc.pid();
-    int res = ::kill(pid, SIGINT);
-    if (res != 0)
-        m_errorString = QString::fromLocal8Bit(strerror(errno));
-    return res == 0;
+    long pid;
+#ifdef Q_OS_WIN
+    pid = Utils::winQPidToPid(m_gdbProc.pid());
 #else
-    QTC_ASSERT(false, "NOT IMPLEMENTED");
-    return false;
+    pid = m_gdbProc.pid();
 #endif
+    return interruptProcess(pid, GdbEngineType, &m_errorString);
 }
 
 QProcess::ProcessState LocalGdbProcess::state() const