Debug Go Projects on Windows and Linux Simultaneously with VS Code

This guide shows how to configure VS Code's launch.json for Go projects so developers can seamlessly debug on both Windows and Linux using Remote SSH, eliminating manual path changes and ensuring consistent cross‑platform debugging experience.

Ops Development & AI Practice
Ops Development & AI Practice
Ops Development & AI Practice
Debug Go Projects on Windows and Linux Simultaneously with VS Code

Modern developers increasingly use VS Code with Remote SSH to develop on a local Windows machine while connecting to a Linux server, achieving a consistent development environment across platforms.

For Go projects that must run on both Windows and Linux, a properly crafted launch.json file enables automatic selection of OS‑specific debugging settings.

1. launch.json Configuration Example

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch msg_center",
      "type": "go",
      "request": "launch",
      "mode": "debug",
      "program": "${workspaceFolder}/app/msg_center/cmd/rpc/msg_center.go",
      "args": ["-f", "app/msg_center/cmd/rpc/etc/msg_center.yaml"],
      "windows": {
        "program": "${workspaceFolder}\\app\\msg_center\\cmd\\rpc\\msg_center.go",
        "args": ["-f", "app\\msg_center\\cmd\\rpc\\etc\\msg_center.yaml"],
        "cwd": "${workspaceFolder}"
      },
      "linux": {
        "program": "${workspaceFolder}/app/msg_center/cmd/rpc/msg_center.go",
        "args": ["-f", "app/msg_center/cmd/rpc/etc/msg_center.yaml"]
      }
    }
  ]
}

2. Understanding the OS‑Specific Sections

Windows configuration program: Uses backslashes (\\) as path separators for Windows. args: Passes the configuration file path (msg_center.yaml) to the Go program. cwd: Sets the current working directory to the workspace root.

Linux configuration program: Uses forward slashes (/) as path separators for Linux. args: Same arguments as Windows, ensuring the Linux environment loads the correct config file.

3. Benefits of Dual‑Platform Debugging

Seamless switching : When developing locally on Windows, VS Code applies the Windows settings; when connected to a remote Linux host, it automatically applies the Linux settings.

Debugging consistency : Identical debugging behavior across both OSes reduces environment‑related issues.

4. Conclusion

By configuring launch.json as shown, Go projects can be debugged on both Windows and Linux without manual adjustments, ensuring multi‑platform compatibility and improving development efficiency in remote‑development workflows.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

cross-platformGoVS Codelaunch.jsonRemote SSH
Ops Development & AI Practice
Written by

Ops Development & AI Practice

DevSecOps engineer sharing experiences and insights on AI, Web3, and Claude code development. Aims to help solve technical challenges, improve development efficiency, and grow through community interaction. Feel free to comment and discuss.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.