远程 gdb 的最佳 gui [关闭]
Posted
技术标签:
【中文标题】远程 gdb 的最佳 gui [关闭]【英文标题】:Best gui for remote gdb [closed] 【发布时间】:2011-10-27 19:50:11 【问题描述】:我知道这个问题之前已经提出过,但主要是针对在本地计算机上运行的程序的gdb
。
我在eclipse-cdt
上取得了一些成功,但它似乎只是偶尔起作用。据说Insight
以前是用来调试的(这个嵌入式x86
板)但它似乎已经死了。
我只需要 C 调试而不是 C++。如果可能的话,我更愿意通过gdbserver
连接(因为这是建议,我一直通过命令行连接它)但是如果您认为将gdb
或ssh
放在设备上并通过这些更好,请同时提及这些解决方案。
附:设备上的gdbserver
版本是7.1,如果该解决方案可以与gdb
的兼容版本一起使用,那就太好了,但我也许可以安装不同的gdbserver
版本。
【问题讨论】:
Eclipse 遇到了什么问题?我正在使用它来调试嵌入式平台(基于 ARM 和 Atom),并在目标上运行 gdbserver,它对我来说非常有用。 投票结束作为工具记录 工具推荐有什么问题> 堆栈溢出有很多关于工具推荐的好问题。 【参考方案1】:我推荐 eclipse Indigo,它内置了对通过 gdbserver 进行远程调试应用程序的支持。我只是不知道源代码必须放在哪里才能工作。
Sinec 它使用 gdb 的 MI 接口,它应该像任何其他与 gdb 交互的接口一样工作。
【讨论】:
以前它最初不会显示代码,直到我继续主函数的启动并重新加载视图(我认为或类似的东西)。目前 w/eclipse 3.7 断点/显示代码而不是汇编不起作用。远程构建绝对是调试构建(我很确定本地构建也是如此)。 通过单击窗口左侧的断点对我也不起作用。我使用输出窗口和 gdb 中的标准“break”命令手动设置它们。代码仅在您“中断”正在运行的进程时才开始显示,以便界面可以与 gdb 同步。 我认为这是我以前能够做到的,但它似乎不再起作用了。 已修复,现在需要在连接后添加“file binary-name”【参考方案2】:我建议尝试Qt Creator。它是跨平台的,具有非常好的“代码洞察”功能,并且比 Eclipse 轻得多。它是一个完整的 IDE,而不仅仅是一个调试器前端。它确实需要一个使用 python 支持构建的 gdb(我认为只有客户端),但它确实包含在它的跨平台安装程序中。它绝对更适合开发 C++/Qt 应用程序,但确实支持通用 Makefile 和 CMake 项目,我将它用作我的日常 C IDE 和调试器。
根据您正在调试的远程目标的具体类型,这个问题的答案可能会有很大差异。如果您要对运行 RTOS 的深度嵌入式微控制器目标进行交叉调试,您的选择将更加有限。
对于基于 Makefile 的项目,您希望使用 "Generic Project" creation wizard,默认情况下会将指定目录下的所有源文件添加到您的项目中。如果您希望 Qt Creator “理解”您在 Makefile 中指定的内容,例如命令行包含目录(进入您的 .includes 文件)、命令行包含的标头(进入您的 .config 文件)和命令行符号定义(进入您的 .config 文件)。项目文件列表以及编译、部署和运行命令都可以通过 GUI 维护。
【讨论】:
你使用的是哪个版本,w/2.2 我找不到任何导入 makefile 项目的方法 Qt 不使用 Makefiles 来构建它的项目,而是依赖于它自己的构建机制和 'qmake'。 是的,但我需要调试 makefile 项目。我可以使用自动生成的文件,但我怀疑是否有自动生成器。 手册有a section on creating generic projects。基本上,您最终只是在项目中创建了一个文件列表(也可以从 UI 维护)。它还允许您在 .config 文件中放入可能已定义和包含的符号,这些符号可能通过命令行正常包含。它有一个 .includes 文件,您可以在其中列出 Makefile 中的额外包含目录。它完全是手动的,但它确实对我有用......【参考方案3】:使用 DDD 怎么样?老实说我用的不多,好像有办法使用DDD进行远程调试http://www.gnu.org/s/ddd/manual/html_mono/ddd.html#Remote%20Program
【讨论】:
哇!!谢谢!我的第一个赏金答案!【参考方案4】:Gdb 本身已经内置了curses based pseudo gui。默认情况下,它将主屏幕拆分为 2 个窗口。上层窗口包含源代码,下层窗口是命令行界面。还有其他模式允许向您显示寄存器值和程序集。它在 ssh 上运行良好,因此如果可以,请在您的设备上复制 gdb 并通过 ssh 对其进行调试。如果没有,以上所有内容都可以通过 gdbserver 进行调试。
【讨论】:
【参考方案5】:您可以使用 NetBeans。 NetBeans 支持使用 gdb 进行远程调试。 gdbserver 支持插件也存在。我不测试插件,但使用 ssh 进行远程调试效果很好。
【讨论】:
gdbserver 插件由于某种原因阻塞。【参考方案6】:试试 Affinic Debugger GUI。它有更新的设计。 DDD太老了,Affinic Debugger支持各大平台,比DDD强大。
【讨论】:
以上是关于远程 gdb 的最佳 gui [关闭]的主要内容,如果未能解决你的问题,请参考以下文章