VxWorks现场排障时,Shell是最快的入口,但很多人一上来就不知道命令从哪里看、系统里到底编进了哪些工具。处理这类问题的顺序很固定,先确认你当前Shell类型,再用内置帮助找到命令入口,最后用符号表查询把可用命令列清楚并按关键字筛选。
一、VxWorks里怎么查看Shell命令帮助
不同镜像裁剪程度不一样,帮助入口也可能只保留一部分,所以先从最通用的帮助命令开始,再按领域继续往下钻,能更快摸清你这台目标机的能力边界。
1、先看提示符确认你处在什么交互模式
观察串口或telnet窗口的提示符,如果常见为->,多半是内核Shell的C解释器风格;如果你看到的是另一种命令行提示符,先不要急着套用别人的命令清单,先用下一步的help把入口拉出来再判断。
2、直接输入help获取当前镜像的帮助目录
在提示符后输入help并回车,先看输出里有哪些领域帮助入口与常用工具名,这一步相当于拿到一份现场可用命令的目录,不需要记忆也不依赖外部文档。
3、优先使用dbgHelp定位调试相关命令
当你要查断点、单步、栈回溯、符号查询这类调试能力,先输入dbgHelp,把调试相关的常用命令入口一次性列出来,再按输出提示逐个调用。
4、按I/O与网络方向继续查ioHelp与netHelp
你要排查文件系统、设备、网络接口、路由或socket行为时,先输入ioHelp或netHelp,看该镜像是否提供对应命令集合,再从输出里挑你需要的命令名去用。
5、把帮助输出和当前问题绑定成最短验证动作
看到帮助里出现你需要的命令后,立刻做一次最短验证,比如你准备查任务就先跑一次i或ti,准备查设备就先跑一次devs,能直接确认命令是否可用以及输出是否符合你当前版本习惯。
二、VxWorks里怎么列出当前可用命令
列命令建议用两层方法,第一层用help拿常用命令范围,第二层用符号表查询把系统里真实存在的入口列出来,并按关键字快速收敛到你要的那一组。
1、先用help把常见命令列表跑一遍
help输出里通常会包含任务、内存、I/O、网络等常见方向的命令入口,你先把这份列表当作现场清单使用,能解决大多数排障场景的命令发现问题。
2、用lkup按关键字查询符号表里的可用入口
在Shell里输入lkup并带上关键字字符串,例如查帮助入口就用lkup Help,查网络相关就用lkup net或lkup ip,查文件相关就用lkup io或lkup fs,这种方式能把当前镜像里实际存在的函数与命令入口列出来。
3、用lkup把某个命令是否存在先查清再执行
当你不确定某个命令是不是被裁剪掉了,先用lkup查同名符号是否存在,存在再输入执行,不存在就不要在现场反复试错,把时间花在镜像组件与配置核对上更划算。
4、用moduleShow或相关模块查看命令来源
如果你的系统加载了多个模块或动态组件,先用moduleShow查看当前已加载模块,再结合lkup按模块相关关键字查符号,能更快判断某个命令是内核自带还是某个组件加载后才出现。
三、VxWorks命令缺失如何补齐
如果help里看不到常用命令,或lkup本身就不存在,通常不是你用法错,而是构建时没有把对应组件编译进镜像。补齐的关键是先在目标机确认缺失,再回到工程配置里把组件勾上,最后重启复核。
1、先在目标机确认缺失范围
在Shell里先执行help确认是否几乎没有命令目录,再尝试输入lkup确认符号查询能力是否存在,把缺失范围记录成一行清单,例如缺help扩展、缺lkup、缺文件工具。
2、在Workbench里打开内核配置入口
在Wind River Workbench中选中你的VxWorks工程,右键工程选择【Properties】,进入内核配置相关页面,找到组件选择与裁剪配置入口,准备按清单补齐。
3、补齐Shell与符号表显示相关组件
在组件列表里确认是否包含组件名为INCLUDE_SHELL,缺失时补上;需要使用lkup一类符号表查询时,确认是否包含组件名为INCLUDE_SYM_TBL_SHOW,缺失时补上并保存配置。
4、补齐文件与目录工具相关组件
如果你需要ls、cd、devs这类常用文件与设备工具,检查并加入组件名为INCLUDE_DISK_UTIL或对应版本提供的文件工具组件,避免你只能看到设备挂载却无法快速浏览目录。
5、重新构建并下载启动后做两步验收
重新编译生成新镜像并下载启动后,第一步在Shell里输入help确认目录明显变完整,第二步用lkup Help与lkup dbg做关键字检索确认核心命令入口确实进入当前系统,验收通过再继续做业务排障。
总结
VxWorks里看命令帮助,优先从help入手,再按dbgHelp、ioHelp、netHelp等领域入口扩展;列出当前可用命令,优先用help拿常用清单,再用lkup按关键字把真实存在的命令入口查全。若命令缺失,先在目标机确认缺失范围,再回到Workbench内核配置补齐INCLUDE_SHELL、INCLUDE_SYM_TBL_SHOW、INCLUDE_DISK_UTIL等组件,重启后用help与lkup做一次验收即可。
