使用 gdb 调试 chroot 程序
Debug chrooted program with gdb
我遇到的情况是,我必须调试的程序必须 运行 在 chroot 环境中。现在我已经在另一个根目录中安装了 gdb 并复制了源代码,这适用于基本设置,但不是很方便,因为我必须在任何时候进行更改和重新编译时重新同步源代码并且我必须复制在我所有的 gdb 设置等
有什么方法可以让 运行 在我的正常环境中调试程序,从而在 chroot 环境中调试 运行 的程序?我在 Arch Linux.
您可以使用远程调试:
在 chroot 中,您只需要您通常的 运行时间加上程序 gdbserver
。然后 运行:
chroot$ gdbserver :8888 myprogram
在开发环境中,从源目录你运行gdb
并连接到服务器
$ gdb myprogram
(gdb) target remote :8888
然后就可以开始调试了。
我喜欢在 continue
之前执行 br main
,因为调试器将在 _start
停止,太早没有用。
PS: 使用远程调试时注意安全问题,因为 8888 是一个侦听 TCP 端口。
我遇到的情况是,我必须调试的程序必须 运行 在 chroot 环境中。现在我已经在另一个根目录中安装了 gdb 并复制了源代码,这适用于基本设置,但不是很方便,因为我必须在任何时候进行更改和重新编译时重新同步源代码并且我必须复制在我所有的 gdb 设置等
有什么方法可以让 运行 在我的正常环境中调试程序,从而在 chroot 环境中调试 运行 的程序?我在 Arch Linux.
您可以使用远程调试:
在 chroot 中,您只需要您通常的 运行时间加上程序 gdbserver
。然后 运行:
chroot$ gdbserver :8888 myprogram
在开发环境中,从源目录你运行gdb
并连接到服务器
$ gdb myprogram
(gdb) target remote :8888
然后就可以开始调试了。
我喜欢在 continue
之前执行 br main
,因为调试器将在 _start
停止,太早没有用。
PS: 使用远程调试时注意安全问题,因为 8888 是一个侦听 TCP 端口。