From 13334e03a412790c6191dfc6d56946bd9becbee4 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Thu, 21 May 2026 12:11:40 +0200 Subject: [PATCH] Add Debugger for remote JVM --- .idea/runConfigurations/Remote_JVM_Debugger.xml | 15 +++++++++++++++ buildSrc/src/steamwar.devserver.gradle | 17 +++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 .idea/runConfigurations/Remote_JVM_Debugger.xml diff --git a/.idea/runConfigurations/Remote_JVM_Debugger.xml b/.idea/runConfigurations/Remote_JVM_Debugger.xml new file mode 100644 index 00000000..d7e6e149 --- /dev/null +++ b/.idea/runConfigurations/Remote_JVM_Debugger.xml @@ -0,0 +1,15 @@ + + + + \ No newline at end of file diff --git a/buildSrc/src/steamwar.devserver.gradle b/buildSrc/src/steamwar.devserver.gradle index 7e88769f..618ed2a6 100644 --- a/buildSrc/src/steamwar.devserver.gradle +++ b/buildSrc/src/steamwar.devserver.gradle @@ -86,6 +86,7 @@ class DevServer extends DefaultTask { if (worldName == null) worldName = properties.get("worldName") host = properties.get("host") + debugPort = new Random().nextInt(5001, 10000) if (host == null) { throw new GradleException("Please supply the 'host' in a 'steamwar.properties' files either in this project dir or any parent project!") @@ -94,6 +95,7 @@ class DevServer extends DefaultTask { doLast { setupTemplate(template) uploadDependencies() + startDebugPort() startDevServer() } finalizedBy(new Finalizer()) @@ -105,6 +107,9 @@ class DevServer extends DefaultTask { @Internal String host + @Internal + int debugPort + @Internal Boolean running = true @@ -213,6 +218,17 @@ class DevServer extends DefaultTask { } } + void startDebugPort() { + def process = new ProcessBuilder("ssh", host, "-L", "5005:localhost:$debugPort").start() + def processOutput = new BufferedReader(new InputStreamReader(process.inputStream)) + new Thread({ + while (running) { + } + processOutput.close() + process.errorStream.close() + }).start() + } + void startDevServer() { def devPy = new StringBuilder().append("dev.py") if (port != null) devPy.append(" --port $port") @@ -225,6 +241,7 @@ class DevServer extends DefaultTask { devPy.append(" -D${dParam.key}=${dParam.value}") } devPy.append(" $template") + devPy.append(" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:$debugPort") if (jvmArgs != null) devPy.append(" $jvmArgs") println("Starting $template with command ${devPy.toString()}")