无工作台的 VxWorks 调试

     2023-02-25     218

关键词:

【中文标题】无工作台的 VxWorks 调试【英文标题】:VxWorks debugging without workbench 【发布时间】:2016-05-05 13:58:14 【问题描述】:

是否可以在没有带有 GDB 的 Workbench 或其他免费调试器的情况下调试 VxWorks 任务? 网上看只报告gdb(目标vxworks ID)的旧命令不再起作用;此外,在引入 VxWorks 5.3 之后,WDB 协议看起来从未被移植到 gdb 中,除了 vetust 版本上的一个暂定版本并且仅适用于 PowerPc 平台(我需要调试 x86 VxWorks 6.9)

【问题讨论】:

【参考方案1】:

我不知道它是什么版本,但多年前我为使用 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 特定的术语和布局:

cRIO - 带有 VxWorks 的控制器的名称。基于 PowerPC FRC_UserProgram.out - FRC 机器人代码上传的内核模块 FRC_UserProgram_StartupLibraryInit - FRC 机器人代码的入口点 FRC_RobotTask - FRC 机器人代码的主线程 powerpc-wrs-vxworks - 用于 FRC 机器人代码的 GCC 三元组

还要确保链接器设置(在 lib/elf_utils.rb 中)适用,WdbGopherStrings(来自 lib/wdb/wdb.rb)中的 GOPHER 命令可能需要针对不同版本的 vxWorks 调整偏移量/地址&x86。它们可以是 synthesized from the C headers (p. 160-167) 或来自现有 Workbench 调试器会话的 Wireshark 捕获。

重要提示:gdb2wdb 是相当的 hack,并且许多功能不受支持,但我确实记得当时我实现了足以能够使用库存 Eclipse CDT + gdb,所以对于简单的情况应该足够了。

【讨论】:

【参考方案2】:

在 VxWorks 目标 shell 上尝试 -> dbgHelp,它显示交互式 shell 调试命令。

【讨论】:

【参考方案3】:

Wind River 当然鼓励使用 Workbench 进行检查式调试(这很有意义,因为它需要 Wind River 许可证),但似乎有一些方法可以使用 GDB 和一些配置来调试 VxWorks 中的任务。 请参阅此old GDB VxWorks manual。现在这本手册是 2002 年的,所以我想有很多东西不是最新的,但希望这对您有所帮助(当然,如果 VxWorks 的现代版本为本文中详述的方法提供旧版支持)。

您很可能知道,VxWorks 支持基本的基于打印的调试样式,可以通过 printf() 或来自logLib 的高级 logMsg() 函数来执行。

【讨论】:

vxworks调试组件和命令(代码片段)

目录1.与任务相关的命令2、系统信息3. vxworks组件中断showvxBus总线信息show时钟组件EDR信息Telnet和pingPCIshow启动脚本其它4.相对应的show命令ObjectInformationCommandsMemoryInformationCommandsSystemClock:AuxiliaryClock:Timestamptimer:pci相关命令 查看详情

vxworksfuzzing之道:vxworks工控实时操作系统漏洞挖掘调试与利用揭秘

转载:freebuf0×00前言关于VxWorks,这里引用44CON议题《攻击VxWorks:从石器时代到星际》探究一文章中的介绍:VxWorks 是世界上使用最广泛的一种在嵌入式系统中部署的实时操作系统,是由美国WindRiver公司(简称风河公司,即WRS&... 查看详情

无密码 SSH 仅在调试模式下工作

】无密码SSH仅在调试模式下工作【英文标题】:PasswordlessSSHworksonlyindebugmode【发布时间】:2015-05-1906:42:47【问题描述】:我有两台机器,用户相同,需要在它们之间做无密码ssh,我有两个用户medya和orainstmedyahome是/home/medya/orainst主... 查看详情

vxworks5.5.1移植rtl8139驱动和配置网络启动调试环境

...发环境:Tornado2.2.1目标机CPU:英特尔ATOMD2550相关知识介绍VxWorks系统支持两种形式的网络驱动:一种是标准的BSD驱动,支持通用的BSD4.4网络API结构等和大多所BSD网络驱动类似,将网络驱动协议层与硬件驱动联系在一起;另外一种是E... 查看详情

当分析器无法收集样本时,如何调试无响应的服务器?

】当分析器无法收集样本时,如何调试无响应的服务器?【英文标题】:HowcanIdebuganon-responsiveserver,whentheprofilercan\'tcollectsamples?【发布时间】:2013-05-0220:30:04【问题描述】:我编写的服务器偶尔会出现问题。它在Clojure中,但我认... 查看详情

vxworks里taskdelay是多少毫秒

...周期(tick),一般是1秒60个tick,既一个tick是60分之一秒。在vxworks5.5里面系统初始话的时候在usrRoot里面用sysClkRateSet(60)进行了初始设置,当然也可以通过这个函数修改,也可以通过sysClkRateGet查看。VxWorks是美国WindRiverSystem公司(以下... 查看详情

当另一个应用程序关闭时,如何调试为啥应用程序死机无异常?

】当另一个应用程序关闭时,如何调试为啥应用程序死机无异常?【英文标题】:Howtodebugwhyapplicationdiesexception-less,whenanotherapplicationisclosed?当另一个应用程序关闭时,如何调试为什么应用程序死机无异常?【发布时间】:2013-01-18... 查看详情

在 Dev-C++ 中调试会导致 IDE 崩溃且无响应

】在Dev-C++中调试会导致IDE崩溃且无响应【英文标题】:DebugginginDev-C++makesIDEcrashandnotrespond【发布时间】:2015-09-2023:13:48【问题描述】:我很想请人提示我该怎么做。我已经在我的电脑上安装了Dev-C++(5.11版本)我不知道它发生了... 查看详情

远程调试 Jetty(无 mvn,无插件)

】远程调试Jetty(无mvn,无插件)【英文标题】:RemotedebugJetty(nomvn,noplugins)【发布时间】:2010-11-0811:48:25【问题描述】:过去的情景-使用Tomcat并在调试模式和远程调试下使用Eclipse。-在此调试/远程端口中定义一个端口并与eclipse... 查看详情

[架构之路-125]-《软考-系统架构设计师》-操作系统-4-浅谈vxworks与linux操作系统的区别

...操作系统的硬件定制化(BSP)2.不同点2.1内核结构不同vxworks是微内核,只提供基本的服务,而linux是宏内核,除了基本的服务、内核还包括文件系统、网络协议等;2.2运行模式不同VxWorks应用程序在“实模式”下,... 查看详情

测试访问 WindRiver/VxWorks 许可证服务器?

】测试访问WindRiver/VxWorks许可证服务器?【英文标题】:TestaccesstoWindRiver/VxWorkslicenseserver?【发布时间】:2021-03-0602:15:09【问题描述】:我在调试WindRiver构建系统时遇到问题,其中构建机器似乎无法从WindRiver许可证服务器获得许可... 查看详情

vxworks工程移植到sylixos应用笔记

...范围该应用笔记适用帮助用户在RealEvo-IDE开发环境中移植Vxworks应用程序,并部署到SylixOS操作系统上运行,使用到的开发工具为RealEvo-IDE集成开发环境。2.准备工作2.1环境准备在使用之前,须安装有翼辉信息开发的集成开发套件,... 查看详情

vxworks调试备忘录

1.系统出错打印出堆栈时,不一定是打印堆栈附近的代码报错了,有可能是前面代码报错了,然后随机延时了一段时间才把堆栈  信息打印出来了,需要加在前面代码中不断缩小范围排查;2.中断处理例程里面... 查看详情

Netbeans:无断点开始调试

】Netbeans:无断点开始调试【英文标题】:Netbeans:startdebuggingwithoutbreakpoint【发布时间】:2019-02-2715:56:10【问题描述】:我的程序中有一个无限循环。我启动程序,它不会停止。由于我不知道问题出在哪里,所以我不能使用断点。... 查看详情

如何使用vs2010远程调试?

参考技术A一.调试准备将vs2010远程调试监视器RemoteDebugger拷贝到被调试机器中。(RemoteDebugger默认路径:C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\Common7\IDE\RemoteDebugger)1被调试机设置根据操作系统的位数打开相应文件夹... 查看详情

vs2013无调试信息

Debug模式,运行时完全正常,但是一调试就出现对话框,显示出错信息:“无法找到“XXX.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。” VC项目是空项目。发现其他的项目都可以调试,就“空项... 查看详情

如何挂接到vxworks的tty系统

...的PC-NET网卡驱动有问题,所以需要下载AMD的PC-NET网卡的VxWorks系统驱动,可以从AMD网站免费下载。  一张1.44M的软盘,用于制作系统引导盘。  准备并安装好以上软件后,就可以开始下一步的工作了。  开始安装  编译... 查看详情

vxworks中的任务状态“pend”和“suspend”有啥区别

1、意思不一pend:pend(阻塞),指任务释放。suspend:suspend(挂起),指任务不释放。2、用途不一pend:一般在等待某种资源或信号量的时候出现。suspend:一般挂起用于程序调试中的条件中断。3、运行不一pend:其他任务可以运... 查看详情