我正在尝试使用 CLion v1.2 作为超级用户来运行用 C++ 编写的程序。这里的任何人都知道如何以超级用户身份运行它?我正在使用 CMake。
5 回答
我通过在本地机器上进行远程调试解决了这个问题。我以 root 权限运行 gdbserver 并从 CLion 连接到它。
要启动 gdbserver sudo gdbserver :port myapp
,请配置远程 GDB 调试port
一种解决方法是:
来自https://www.jetbrains.com/help/clion/attaching-to-local-process.html#prereq-ubuntu
如果您在 Ubuntu 上使用 CLion(或者可能在其他 Linux 发行版上),在第一次尝试附加到本地进程时,您可以获得 ptrace: Operation not allowed。错误信息。要禁用它并启用附加到本地进程功能,请执行以下操作:
要暂时禁用此限制,请输入命令:
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
. 要应用更改,请输入:
sudo service procps restart
或根据您的选择重新启动系统。
如果您要求以 sudo/administrator 身份运行调试器,我遇到了同样的问题。在 Linux 上,您可以使用 sudo 打开 CLion,并且 gdb 运行可执行文件时不会出现 root 权限问题:
sudo ./clion.sh
我猜您可以右键单击 Windows 并“以管理员身份运行”以获得相同的结果。
JetBrains 中有一个功能请求以 root 身份运行调试器,这可能会使用更多的投票。
从 2020.3 开始,这已在 CLion 上实施:
您可以创建一个 bash 脚本来帮助您。例如run.sh
:
#!/usr/bin/env bash
echo $LOGIN_PASSWD | sudo -S yourExecutable --with=some-arguments
不要忘记chmod a+x run.sh
,并将当前帐户的密码导出为运行/调试配置中的环境变量。