Webinar Recording: Remote Development with CLion

The recording of our February 28th webinar with Phil Nash is now available on the JetBrainsTV YouTube channel.

In this webinar, we took a look at some of the remote development topologies that developers work with, explaining how CLion supports them.

The video includes the time stamps:
01:06 – Intro with all the topologies briefly explained
07:53 – Remote GDB debug sample
11:30 – Remote GDB debug configuration
15:37 – Raspberry Pi demo: remote GDB debug
21:21 – Full Remote Development
26:00 – Raspberry Pi demo: full remote mode
29:50 – WSL case
32:30 – Q&A

Useful links and further reading:

Q: What if the remote is a Docker container? Can this be handled somehow similar?
A: While you can work with Docker containers as with regular remote machines now (so the Full Remote mode will work), you might be asking about smarter support, which includes Docker toolchains and some easy configuration steps (like we have for WSL now). The latest is not yet available in CLion, but we definitely have some plans for the future – see CPP-13751.

Q: What are the supported combinations of platforms for the Full Remote Mode?
A: The local client machine can be macOS, Linux, or Windows, but the remote host should be Linux. The setup is also limited in terms of the project model, as right now it works only for CMake.

Q: Are ssh keys supported?
A: Yes, they are supported. When configuring the remote toolchain, select the “Key Pair” authentication type.

Q: For remote development on Windows with WSL, can we have rsync to transfer the files? It will be much faster than scp. rsync can be installed on WSL.
A: For WSL it’s better to use a separate WSL toolchain type. In that case, no file synchronization is happening at all, as it’s actually the same memory segment.

Q: How is the mapping created for local and remote folders in the Full Remote Mode? How can I change the remote directory where the source code is synchronized?
A: The configuration process is as follows:

  1. Create a Remote Toolchain in Settings/Preferences | Build, Execution, Deployment | Toolchains (toolchains are IDE-wide – they define the environment and the compiler/debugger executable).
  2. Create a CMake Profile in Settings/Preferences | Build, Execution, Deployment | CMake (there are project-wide – they define the build type and other CMake options).
  3. After step 2, an entry in the Deployment settings (Settings/Preferences | Build, Execution, Deployment | Deployment) appears. The Mappings tab defines the Local/Remote path mappings. By default, CLion creates a directory under the /tmp folder on the Remote host. You can change the path here.

Most notable requests on Full Remote development in CLion

  • Configurations:
    • Open remote CMake project, no requirement for sources stored locally (CPP-14584)
    • Native Docker support (CPP-13751)
  • VCS: Remote VCS support (CPP-14482), VCS branch switching (CPP-14272)
  • Debugger:
    • Launch configuration automatically under gdbserver via ssh for remote debug (CPP-7050)
    • Attach to process on remote host (CPP-14316)
    • An option to provide symbol file for a shared library in case of remote GDB debug with gdbserver (CPP-8236)

There is a set of other bugs and requests linked to this main ticket, CPP-744.


Your CLion Team

image description

Discover more