附加到进程
CLion 提供了一种连接调试器到本地和远程进程的方法。
对于 C/C++ 应用程序,您可以在 Windows 上使用 GDB 或 MSVC LLDB,在 macOS 上使用 LLDB,在 Linux 上同时使用 GDB 和 LLDB 附加到进程。 在适用的情况下,也可以使用其他语言的调试器(例如,Python 调试器)。
Ubuntu 的先决条件
在 Ubuntu 和其他一些 Linux 发行版上,您可能会在首次尝试附加到进程时收到 ptrace: Operation not permitted错误消息。 请执行以下操作之一:
要暂时禁用此限制,请输入以下命令:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope要永久禁用此限制,请打开 /etc/sysctl.d/10-ptrace.conf 文件进行编辑,并将行
kernel.yama.ptrace_scope = 1更改为kernel.yama.ptrace_scope = 0。要立即应用更改,请输入上述命令
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope。或者,运行
sudo service procps restart或重新启动您的系统。
您可以在 此处找到更多详细信息。
附加到正在运行的进程
按 Ctrl+Alt+F5 或从主菜单中选择 。
附加到进程 对话框会打开所有检测到的正在运行的进程列表。
您可以将进程视为列表或树状结构,并按名称搜索特定进程:

对于每个进程,您可以找到可执行文件名称和进程 ID、启动它的用户、可用的调试器以及用于启动的命令。
使用下拉菜单按调试器类型过滤进程列表:

您还可以通过设置 仅显示我的进程 来过滤列表:

本地 选项卡显示本地进程列表。 选择进程并点击 附加方式...。
切换到 SSH 选项卡以查看远程进程列表。 请确保事先配置了 带有 SSH 凭据的远程工具链。

在 Windows 上,切换到 WSL 选项卡以打开 WSL 进程列表。 您将能够使用 WSL GDB 调试器附加到它们(如果您的项目中至少配置了一个 WSL 工具链)。
附加到尚未启动的进程
如果您想要附加的进程尚未运行,您可以使用 附加到未启动的进程 操作预先配置附加方式:
请选择 从主菜单。
在打开的对话框中,指定进程的命令行或可执行文件名。
如果希望在 CLion 附加后暂停进程,请勾选 在附加后保持进程挂起 复选框。
如果不希望在调试会话结束后 CLion 重新打开此对话框,请取消选中 调试后重新打开对话框 复选框。
点击 附加 并选择调试器(如适用)。

CLion 将开始监视。 一旦识别出进程,将自动附加并触发调试。
从进程中分离
从远程进程分离的过程与停止调试会话相同。 但是,请注意,当您分离时,调试会话会关闭,但进程会继续运行。
点击主工具栏中的 停止
按钮 调试工具窗口。
或者,点击 停止
主工具栏上的 Ctrl+F2 ,然后选择要关闭的会话。