Attaching to Process
While running a Python script launched either outside of PyCharm or inside PyCharm, you can attach it to another Python process if that process is not in the debug mode.
Prerequisites for Ubuntu users
If you are using PyCharm 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.conffile for editing and change the line
kernel.yama.ptrace_scope = 1to
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 restartor simply restart your system.
You can find more details here.
Attaching to process
Attach to a process following these general steps:
- Launch the process intended for debugging. You can do it from operating system or using the PyCharm terminal.
- To find the process to attach to, do one of the following:
- On the main menu, choose :
- On the main menu, choose or press Ctrl+Shift+A. In the list of actions that appears, find the desired action by typing the first letters, and select it:
- From the list of available processes that appears, select the desired process. Simplify your search by typing the first letters of its name or PID. In case there are several debuggers that can be used for the selected process, you can choose among them in the pop-up menu.
You might want to show only specific processes in the Attach to Process list. Add the required pattern to the corresponding field in the Python Debugger settings ( ). For example, put "Scientific" if you want to attach only processes matching this string:
- Proceed with debugging the same way as you usually do it in PyCharm (set breakpoints, step through, pause and resume the process, evaluate expressions, etc.)
- When finished, detach the process: select the Stop the process button of the Debug Tool Window. or click the