diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 84bf926e3..285012e73 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -28,6 +28,8 @@ add_library(core
digital_controller.h
dma.cpp
dma.h
+ gdb_protocol.cpp
+ gdb_protocol.h
gpu.cpp
gpu.h
gpu_backend.cpp
diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj
index dbeaeba0b..0ca308ce4 100644
--- a/src/core/core.vcxproj
+++ b/src/core/core.vcxproj
@@ -124,6 +124,7 @@
+
@@ -198,6 +199,7 @@
+
diff --git a/src/core/core.vcxproj.filters b/src/core/core.vcxproj.filters
index 6da3d2139..adf4f86e5 100644
--- a/src/core/core.vcxproj.filters
+++ b/src/core/core.vcxproj.filters
@@ -6,6 +6,7 @@
+
@@ -64,6 +65,7 @@
+
diff --git a/src/core/gdb_protocol.cpp b/src/core/gdb_protocol.cpp
new file mode 100644
index 000000000..34713c0c1
--- /dev/null
+++ b/src/core/gdb_protocol.cpp
@@ -0,0 +1,319 @@
+#include "gdb_protocol.h"
+#include "bus.h"
+#include "cpu_core_private.h"
+#include "common/log.h"
+#include "common/string_util.h"
+#include "cpu_core.h"
+#include "frontend-common/common_host_interface.h"
+#include "system.h"
+#include
+#include
+#include