首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gdbserver与远程gdb的区别

gdbserver与远程gdb的区别
EN

Stack Overflow用户
提问于 2021-09-14 10:56:38
回答 1查看 366关注 0票数 0

gdbserver和远程gdb (即通过SSH)有什么不同?它们为什么共存?Unix哲学建议,软件应该做好一件事,即调试本地程序。在我看来,gdb违反了这个原则,除了做另外一件事--与gdbserver交互。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-14 13:39:56

gdbserver比GDB小,依赖性更小,因此可以在资源受限的系统上运行,这样GDB本身就无法运行。或者,由于其他原因,GDB无法运行,例如目标平台没有Python,您希望使用GDB的一些Python特性。

其次,目标平台可能与主机平台(运行GDB的主机平台)不同,但与此相关,也许为一个小目标编译GDB、Python、语法高亮库等等并不是您想要的时间,而是您可以编译gdbserver,然后在本地计算机上运行GDB。

最后,尽管gdbserver本身很有用,但它也是测试GDB的远程串行协议支持的有用机制。此协议记录在GDB手册中,允许gdbserver以外的软件与GDB交互,例如OpenOCD和QEMU,它们都支持GDB的远程协议,这使得GDB可以调试GDB和gdbserver都无法运行的裸金属目标。

您正确地注意到,这基本上意味着GDB有两种调试方法,一种是本地目标支持,另一种是远程目标支持。如果我们想在思想上保持纯正,那么我们可以(理论上)从GDB中删除本机目标支持,并在所有情况下使用gdbserver,也就是说,当您尝试在本地机器上调试程序时,GDB将自动启动gdbserver,连接到它,并通过该接口进行调试。不过,我不指望很快就能看到这种变化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69176457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档