CLion 2023.1 Help

Attach to process

CLion provides a way to attach the debugger to local processes. Attaching to remote processes is not supported at the moment (CPP-14316)

For C/C++ applications, you can attach to a process with GDB or MSVC LLDB on Windows, LLDB on macOS, and both GDB and LLDB on Linux. When applicable, debuggers for other languages (for example, Python debugger) 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:

  1. To disable this restriction temporarily, enter the command:

    echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
  2. 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.

You can find more details here.

Attach to a local process

  1. Press Control+Alt+F5 or select Run | Attach to Process from the main menu.

    Attach to Process menu item
  2. In the Attach to Process dialog, find the process you want to attach to. You can view the processes as a list or as a tree and search for a particular process by name:

    Attach to Process dialog

    The dialog shows the executable name and its process ID, as well as the name of the user who launched it, the debuggers available for this process, and the command used to launch the process.

  3. 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.

Detach from a process

The procedure to detach from a remote process is the same as for stopping a local debug session, however, the effect is different. When you detach, the debugging session closes but the process continues to run.

  • Click the Stop the Stop button button on the main toolbar on in the Debug tool window.

  • Alternatively, click Stop the Stop button on the main toolbar or press Control+F2, then select the session to be closed.

Last modified: 14 April 2023