Answers:
如果调试器以root身份运行,则只能调试setuid或setgid程序。内核不允许您调用ptrace
以额外特权运行的程序。如果这样做的话,您将能够使程序执行任何事情,这实际上意味着您可以例如通过在上调用调试器来运行root shell /bin/su
。
如果以root身份运行Gdb,则可以运行程序,但是只有在以root身份运行时,才能观察其行为。
如果需要在不是root用户启动的情况下调试该程序,请在Gdb外部启动该程序,使其以某种方式暂停,然后再进入有问题的部分,并attach
在Gdb中启动进程(at 1234
其中1234为进程ID)。
gdbserver
以root用户身份运行,然后以普通用户身份连接到它。从您的评论看来,您似乎没有设法以简单的方式(以root身份运行gdb)来执行此操作,但是我不知道出了什么问题,所以我无能为力。