是否可以在没有Workbench with GDB或其他免费调试器的情况下调试VxWorks任务? 在线查看只报告gdb(目标vxworks ID)的旧命令不再起作用;此外,在VxWorks 5.3推出之后,WDB协议似乎从未被移植到gdb中,除了在vetust版本上的一个暂定版本和仅用于PowerPc平台(我需要调试x86 VxWorks 6.9)
答案 0 :(得分:2)
尝试-> VxWorks目标外壳上的dbgHelp,它显示交互式外壳调试命令。
答案 1 :(得分:0)
Wind River当然鼓励使用Workbench进行检查式调试(这是有道理的,因为它需要Wind River许可证),但似乎有一些方法可以使用GDB进行一些配置来调试VxWorks中的任务。 见old GDB VxWorks manual。现在这本手册是从2002开始的,所以我想很多东西都不是最新的,但希望这可以帮助你(当然现代版本的VxWorks为本文档中详述的方法提供了传统支持)。
正如您可能知道的那样,VxWorks支持基本的基于打印的调试样式,可以通过printf()或logLib的高级logMsg()函数执行。
答案 2 :(得分:0)
我不知道它是什么版本,但是很多年前,我正是为使用VxWorks的FRC机器人创建了gdb2wdb。自从FRC迁移到基于Linux的系统以来,代码一直没有得到维护,但是我认为没有理由不应该对常量和gopher字符串进行一些调整,以减少FRC的特定性。
GDB2WDB是类似于gdbserver进程的Ruby脚本,因为您在本地计算机上运行gdb2wdb并将其指向vxworks框,然后通过target remote :2345
将gdb指向gdb2wdb。
如果内存可以正确使用,则可以使用2.0.1之后的任何版本的ruby(或1.7之后的jruby)运行它,如下所示:
ruby -I lib bin/gdb2wdb [your-arguments-here]
查看--help参数,并注意以下FRC特定的术语和布局:
还要确保链接器设置(在lib / elf_utils.rb中)适用,并且WdbGopherStrings
中的GOPHER命令(来自lib / wdb / wdb.rb)可能需要调整各种版本的偏移量/地址。 vxWorks和x86。它们可以是synthesized from the C headers(第160-167页),也可以来自现有Workbench调试器会话的Wireshark捕获。
重要说明:gdb2wdb是相当不错的东西,许多功能不受支持,但是我记得当时我实现了足够的能力以能够使用普通的Eclipse CDT + gdb,因此对于简单的情况就足够了。 / p>