gdb需要以root身份运行。 emacs gdb-many-windows

时间:2011-09-11 13:34:02

标签: emacs gdb

我在emacs中使用gdb-many-windows作为普通用户。但该程序需要以root身份运行。我可以在运行gdb-many-windows之前更改为emacs中的root吗?还有其他方法可以解决这个问题吗?

更新:谢谢大家。

4 个答案:

答案 0 :(得分:5)

执行Meta-X gdb时,emacs允许您更改将调用的gdb命令。

只需将其更改为sudo gdb --annotate=3 ...

即可

更新:作为亚光评论,这仍然是非常不安全的。更好地做到这一点

sudo /usr/bin/gdb -ex 'set auto-load-scripts no' --annotate=3 ...

更好的方法可能是更改您的设置,使您正在调试的程序首先不需要以root用户身份运行。也许您可以使用fakeroot代替?

更新2:sudo似乎干扰emacs终端处理。特别是,它尝试从/dev/tty读取密码,但不从emacs迷你缓冲区获取输入。

解决方案是让自己通过sudo无需密码即可调用GDB。这样的事情(在/etc/sudoers中)应该有效:

your_user_id ALL = NOPASSWD: /usr/bin/gdb

答案 1 :(得分:1)

此处未提及的解决方案是让您的构建脚本在二进制文件上设置setuid位并将所有权设置为root

chmod u+s binaryname
chmod g+s binaryname
chown root:root binaryname

这可能比两个答案中的任何一个更安全(尽管它会让任何拥有执行权限的人以root身份运行该文件,这可能不是你想要的......)

答案 2 :(得分:0)

一种可能的解决方案是以root身份运行emacs,这将导致gdb(以及您生成的任何其他进程)以root身份运行。

答案 3 :(得分:0)

似乎有一种方法可以使用emacs 25而不需要修改sudoers。您需要访问emacs中的任何缓冲区(我通常使用我项目中的文件),执行' M-x cd',选择' / sudo :: /' - 这会更改默认目录。然后,当您运行“M-x gdb'”时,gdb将在sudo下运行(系统将提示您输入密码)。另见:https://groups.google.com/forum/#!topic/gnu.emacs.help/DdAev2pWJMw