Skip to content

MacOS Debug Support#86

Open
keyz182 wants to merge 1 commit intoGarethp:mainfrom
keyz182:mac
Open

MacOS Debug Support#86
keyz182 wants to merge 1 commit intoGarethp:mainfrom
keyz182:mac

Conversation

@keyz182
Copy link

@keyz182 keyz182 commented Mar 14, 2026

Fix macOS Debug Support

Got debugging working finally on Mac. I did use AI to help track this down, and make some of the changes.

I'm not sure if the build.gradle.kts changes are needed - they were for me to run things from gradle to test though.

What changed

  • RunConfiguration.kt
    • Handle launching Mac ".app" bundles, and removed dead code.
  • RunState.kt
    • Rewrote execute() to use ProcessBuilder directly on macOS/Linux — the IntelliJ process framework failed silently in the Rider sandbox's coroutine context; stdout/stderr redirected to /tmp/rimworld-doorstop.log (avoids the 64 KB pipe buffer deadlock that Doorstop's verbose MEMORY MAP output caused); added missing macOS resources (run.sh, libdoorstop.dylib, dnlib.dll, HotReload.dll); fixed resource filename .doorstop_config.ini → doorstop_config.ini; ported waitForMonoDebugServer() to bind InetSocketAddress("127.0.0.1", port) rather than ServerSocket(port) (on macOS, wildcard and loopback binds on the same port are distinct — wildcard never throws BindException even when Mono is already listening); times out with a clear ExecutionException instead of falling through to a generic Mono handshake error

Notes

  • Doorstop output (verbose MEMORY MAP / BIND_OPCODE dump) is preserved in /tmp/rimworld-doorstop.log for diagnostics

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant