使用root权限进行远程调试

时间:2014-08-08 22:34:10

标签: c++ netbeans gdb raspberry-pi

我遇到了麻烦。由于无法调用wiringPiSetupGpio(),因此无法远程调试我的程序。我使用netbeans来开发和调试我的程序。我几乎可以肯定我需要以root用户身份运行调试但是......我该怎么做?

是否有可能强制netbeans开始像' sudo gdb'普通用户的内容?或者也许强迫我的帐户在树莓派中打电话给' sudo gdb'什么时候试着打电话' gdb'?

2 个答案:

答案 0 :(得分:0)

要强制netbeans以root身份启动gdb,您需要以root身份安装netbeans。确保您的netbeans intall目录位于/ usr / local而不是/ home / [user_name]。您必须将netbeans安装作为sudo运行

答案 1 :(得分:0)

这是一篇旧帖子,但由于我遇到了同样的问题,我将发布如何解决这个问题:

对我来说问题似乎不是gdb,而是在Raspi上运行的gdbserver(或者在我的情况下是Beaglebone)。

我添加了一个调试配置来以root用户身份调试应用程序,因此我向Beaglebone /usr/local/sbin/gdbserver添加了一个脚本并添加了以下行:

#!/bin/bash
sudo /usr/bin/gdbserver $* 

并使其可执行:

sudo chmod a+x /usr/local/sbin/gdbserver 

并在文件/etc/login.defs中看到

ENV_SUPATH PATH= .... 
ENV_PATH   PATH= .... 

包含/usr/local/sbin。然后在根执行的调试配置中,我将命令gdbserver更改为/usr/local/sbin/gdbserver。如果仍然无法工作,您可能也必须这样做:

sudo visudo

并添加

<your_user> ALL=(root) NOPASSWD:/usr/bin/gdbserver 

我希望这会有所帮助。