以root用户身份在Clion中运行C ++程序

时间:2016-01-21 15:31:00

标签: clion superuser

我正在尝试使用CLion v1.2作为超级用户运行用C ++编写的程序。这里的任何人都知道如何以超级用户身份运行它?我正在使用CMake。

5 个答案:

答案 0 :(得分:2)

我通过本地机器上的远程调试解决了这个问题。我使用root权限运行gdbserver并从CLion连接到它。

要启动gdbserver sudo gdbserver :port myapp,请使用port

配置远程GDB调试

答案 1 :(得分:0)

如果您要求以sudo / administrator身份运行调试器,我遇到了同样的问题。在Linux上,您可以打开CLion作为sudo,gdb不会有运行可执行文件的root权限问题:

sudo ./clion.sh

我猜你可以在Windows中右键单击"以管理员身份运行"得到相同的结果。

JetBrains中有一个feature request以root身份运行调试器,可以使用更多的投票。

答案 2 :(得分:0)

解决方法是:

来自https://www.jetbrains.com/help/clion/attaching-to-local-process.html#prereq-ubuntu

如果您在Ubuntu上使用CLion(或者可能在某些其他Linux发行版上),在第一次尝试连接到本地进程时,您可以获得ptrace:不允许操作。错误信息。要禁用它并启用附加到本地进程功能,请执行以下操作:

要暂时禁用此限制,请输入命令:

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或者按您的选择重新启动系统。

答案 3 :(得分:0)

您可以创建一个bash脚本来帮助您。例如,GoogleCredential credentials = GoogleCredential.fromStream(new FileInputStream("credentials.json")).createScoped(Collections.singleton(??));

run.sh

请不要忘记#!/usr/bin/env bash echo $LOGIN_PASSWD | sudo -S yourExecutable --with=some-arguments ,并在运行/调试配置中将当前帐户的密码导出为环境变量。

答案 4 :(得分:0)

这已经在 CLion 上实现了,从 2020.3 开始:

https://www.jetbrains.com/help/clion/debug-as-root.html