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