我需要使用 Eclipse (gdb) 在 Linux 上调试程序。该程序以root身份运行并且非常大。带有调试符号的二进制文件大小约为 250MB,启动后有 60 多个运行线程。
我正在考虑最好的解决方案:
- 使用 gdbserver
- 以 root 身份运行 Eclipse
- 设置 gdb suid
我认为 1 号(gdbserver)将是最好的解决方案,不幸的是它不可靠。gdb 和 gdbserver 之间的连接丢失。我认为eclipse <-> gdb <-> gdbserver之间传输的大量数据存在问题。
数字 2(以 root 身份运行 eclipse)意味着以 root 身份运行每个进程,因此也会干扰版本控制系统,因为 Eclipse 插件将使用 root 用户而不是我的用户来更改版本控制的文件。
我没有尝试 3 号(suid gdb)。你怎么看待这件事?它真的有效吗?我知道 suid root gdb 与根本没有 root-Password 一样安全,但该机器仅供我用于开发和调试。当然,可以有一个“启用/禁用”脚本,仅在必要时设置 suid 位。
你有什么其他的建议?