The Attach to process feature allows you to debug a project which you are developing in CLion, but (for some reasons) are not able to launch directly from your IDE.
For C/C++ applications, you can attach to a process with GDB on Windows, LLDB on macOS, and both GDB and LLDB on Linux. When applicable, debuggers for other languages (for example, Python debugger or Swift LLDB) can be used as well.
Prerequisites for Ubuntu users
If you are using CLion on Ubuntu (or probably, on some other Linux distribution), an error message ptrace: Operation not permitted may appear upon your first attempt to attach to a process. In this case, do one of the following:
To disable this restriction temporarily, enter the command:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
To disable this restriction permanently, open the /etc/sysctl.d/10-ptrace.conf file for editing and change the line kernel.yama.ptrace_scope = 1 to kernel.yama.ptrace_scope = 0. To apply the changes immediately, enter the above command echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope. Alternatively, run sudo service procps restart or restart your system.
From the main menu, choose Run | Attach to Process or press Ctrl+Alt+F5.
From the list of available processes, select the desired process. Simplify your search by typing the first letters of its name or PID. If there are several debuggers that can be used for the selected process, you can choose among them in the popup menu:
Proceed with debugging the same way as you usually do it in CLion (set breakpoints, step through, pause and resume the process, evaluate expressions, and so on: Note that in case the process you have attached to does not provide debug information, breakpoints will be unavailable and stepping will be performed in the disassembly view.
When finished, detach the process: select the Run | Stop or click the Stop the process button of the Debug Tool Window.