PyCharm 2024.3 Help

Attach to process

PyCharm provides a way to attach the debugger to a Python local process, while running a Python script launched either from your operating system or using the PyCharm terminal, but NOT in the debug mode. Note that you cannot attach to a remote process.

Prerequisites for Ubuntu

On Ubuntu and some other Linux distributions, you might get the ptrace: Operation not permitted error message upon the first attempt to attach to a process. 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 Ctrl+Alt+F5 or select Run | Attach to Process from the main menu.

  2. PyCharm will show the list of the running local processes. Select the process to attach to.

    Select a process to attach

    When there are too many processes, you can narrow down the list by typing the first letters of the process name or PID.

    You might want to show only specific processes in the Attach to Process list. Add the required pattern to the corresponding field on the Build, Execution, Deployment | Python Debugger settings page  Ctrl+Alt+S For example, put "Scientific" if you want to attach only processes matching this string.

  3. Proceed with debugging the same way as you usually do it in PyCharm (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 steps to detach from a remote process are the same as for stopping a local debug session. However, unlike local sessions, the target process continues to run after the debugger detaches.

  • 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 Ctrl+F2, then select the session to be closed.

Last modified: 24 October 2024