我知道这个问题之前已经出现过,但主要是针对本地机器上运行的程序的gdb
。
我在eclipse-cdt
取得了一些成功,但它似乎只是偶尔起作用。据说Insight
之前用于调试(这个嵌入式x86
板),但似乎已经死了。
我只需要C调试而不是C ++。如果可能的话,我宁愿通过gdbserver
连接(因为这是在建议上,我一直通过命令行连接到它)但是如果你认为放gdb
或ssh
设备并通过它们使用它们更好,请提及这些解决方案。
P.S。设备上gdbserver
的版本为7.1,如果解决方案可以与gdb
的兼容版本一起使用,那将会很不错,但我可以安装不同的gdbserver
版本。
答案 0 :(得分:6)
我建议使用eclipse Indigo,它通过gdbserver内置了对远程调试应用程序的支持。我只是不知道源代码必须在哪里才能工作。
Sinec它使用gdb的MI接口,它应该像任何其他与gdb交互的接口一样工作。
答案 1 :(得分:5)
我建议您尝试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维护。
答案 2 :(得分:4)
使用DDD怎么样?我没有太多说实话,似乎有办法使用DDD进行远程调试http://www.gnu.org/s/ddd/manual/html_mono/ddd.html#Remote%20Program
答案 3 :(得分:3)
Gdb本身已内置curses based pseudo gui。默认情况下,它会在2个窗口上拆分主屏幕。上部窗口包含源代码,下部窗口是命令行界面。还有其他模式允许显示寄存器值和汇编。它适用于ssh,所以如果可以的话,在你的设备上复制gdb并通过ssh进行调试。如果没有,上面的所有内容都可以应用于gdbserver上的调试。
答案 4 :(得分:2)
您可以使用NetBeans。 NetBeans支持使用gdb进行远程调试。 Gdbserver支持插件也存在。我不测试插件,但使用ssh进行远程调试。
答案 5 :(得分:1)
尝试 Affinic Debugger GUI 。它有更新的设计 DDD太旧了,Affinic Debugger支持所有主流平台,比DDD更强大。