繁体   English   中英

使用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端口,因此在使用远程调试时要注意安全性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM