CLion 2020.2 Help

Remote Development

There are several options for remote development in CLion, each targeting a particular subset of the setups: Full Remote Mode, WSL, and two variants of using GDB/gdbserver, GDB Remote Debug and Remote GDB Server.

To help you compare these options and choose the most suitable one, we summarized their details in the tables given below. Learn more from our webinar Remote Development with CLion and the articles dedicated to each option.

System and IDE configuration

Full Remote ModeWSLGDB Remote DebugRemote GDB Server
Local OS macOS / Linux / Windows Windows macOS / Linux / Windows macOS / Linux / Windows
Remote OSLinuxCertain Linux distributionsAny OS supporting gdbserverAny OS supporting gdbserver and SSH
Connection protocolSSHSSH TCP / UDP or serial line TCP / UDP or serial line;
SSH for uploading
Required toolsrsync for macOS / Linux clients;
tar for Windows clients
-gdbserver on targetgdbserver on target
Sources locationLocallyLocallyLocally;
symbol file also placed locally
Locally
Synchronization Automatic for all sources;
manual resync of header search paths
Not requiredManualAutomatic for the binary
BuildingRemotelyOn WSLNot specifiedLocally (cross-compilation required)
Running
Debugging
RemotelyOn WSL Program runs remotely under gdbserver;
CLion's GDB connects to the running process
and debugs it locally
Similar to GDB Remote Debug

Project-level settings

Full Remote ModeWSLGDB Remote DebugRemote GDB Server
Project formatCMake CMake / Compilation database AnyCMake
ToolchainRemoteWSLNot specifiedDefault on macOS/Linux;
MinWG, Cygwin, WSL on Windows
Path mappingsCreated automatically,
customizable in deployment entry
Not requiredNot created automatically,
should be set up in run/debug configuration
Not created automatically,
should be set up in run/debug configuration

Steps of the workflow

Full Remote Mode

  1. Create a Remote toolchain:
    - provide credentials and check the connection,
    - wait for tools detection, provide the paths manually if required.

  2. Set the Remote toolchain as default
    or create an associated CMake profile.

  3. If needed, adjust path mappings in the deployment entry.

  4. Use the default profile or select the profile from step 2 for build, run, and debug.

WSL

  1. Configure WSL.

  2. Create a WSL toolchain and provide credentials.

  3. Set the WSL toolchain as default
    or create an associated CMake profile.

  4. Select the default profile or the profile from step 3 for build, run, and debug.

GDB Remote Debug

  1. Place the binary on the remote machine and symbol file on the local machine.

  2. In CLion, create a GDB Remote Debug configuration:

    • provide the symbol file location,

    • specify connection details,

    • set up path mappings.

  3. Launch the program under gdbserver on the remote machine.

  4. In CLion, debug the configuration created on step 2.

Remote GDB Server

  1. Create a Remote GDB Server configuration:

    • provide the credentials to access the target,

    • configure the uploading process,

    • (optional) set the gdbserver connection details.

  2. Select the Debug CMake profile and start a debug session for the created configuration.

Last modified: 08 May 2020