使用 qt creator 在 ubuntu 上以 root 权限调试 Qt 应用程序

使用 qt creator 在 ubuntu 上以 root 权限调试 Qt 应用程序

可以使用 root 权限运行我的应用程序sudo,如下所示:

sudo ./MyApp

是否可以使用 QtCreator 使用 root 权限调试我的 Qt 应用程序?如何在 Ubuntu 系统上执行此操作?

答案1

  1. Tools-> Options-> Environment
  2. 在里面标签General下面**System** Group有一个Terminal选项
  3. 默认值设置为/usr/bin/xterm -e。将其替换为/usr/bin/xterm -e sudo/usr/bin/gnome-terminal -x sudo
  4. 按下ApplyOK 纽扣
  5. 在下面模式选择器点击Projects,选择Run选项。在Run组框选择Run in Terminal

记住:sudo必须有选项

编辑 /etc/sudoers使用sudo visudo

下次运行该程序时,它将在新的xtermgnome-terminal 具有超级用户权限还会询问 root 密码

结果屏幕截图

答案2

我通过以 root 身份启动 Qt Creator 解决了这个问题。

sudo /usr/bin/qtcreator

现在,当我编译和调试时,它将获得应用程序的 root 权限。现在可以使用 root 权限调试我的应用程序了。

答案3

我将使用 GDB 服务器(以 root 身份)从终端运行该程序,然后使用 QtCreator 中的 gdb 连接到服务器。您可以使用以下命令启动 gdbserver:

$ sudo gdbserver host:2345 ./MyApp

在这里,您正在使用端口 2345 托管服务器。您还可以检查您的应用程序是否确实以 UID 0 运行。

$ sudo ps -u

现在,在 Qt Creator 中,转到 Debug -> Start Debugging -> Attach to Running Debug Server。填写表单...最重要的是端口和服务器地址。我选择了 127.0.0.1 和 2345。您可以在 main 处选择 break 以在程序开始时中断。直到您连接后,GDB 服务器才会启动程序。

答案4

Qt 支持论坛建议采取以下操作:

在 Qt Creator 中的选项 -> 设备中添加远程 Linux 设备。将其地址设置为 localhost,用户设置为 root。创建一对身份验证密钥并将公钥粘贴到/root/.ssh/authorized_keys。然后在选项 -> 套件中克隆桌面套件,并将新套件的设备设置为您在上一步中创建的设备。

现在,当您开始调试时,Qt Creator 应该自动以 root 身份通过 ssh 连接到本地主机,启动 gdbserver 并执行调试。

它也可以在无需调试的情况下运行。

也许您应该在远程主机上设置程序的安装,但那是另一回事,并且对于 Qmake 和 QBS 来说,做法也不同。

https://forum.qt.io/post/185983

相关内容