logo资料库

vxworks调试方法总结与shell命令.doc

第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
资料共39页,剩余部分请下载后查看
1Tornado的调试工具
1.1WindShell
1.1.1简介
1.1.2功能键
1.1.3特殊控制符
1.1.4计算功能
1.1.5环境变量
1.1.6内置指令
1.1.6.1所有内置指令
1.1.6.2任务管理
1.1.6.3任务状态信息
1.1.6.4一组调试指令
1.1.6.5系统信息查看
1.1.6.6文件操作
1.1.6.7其他
1.2BROWSE
1.2.1内存查看
1.2.2模块信息
1.2.3堆栈使用率
1.2.4CPU占有率
1.2.5任务信息
1.2.6中断向量表
1.2.7实体查看
1.3Debugger
1.3.1条件断点
1.3.2代码显示
1.4Target Server
1.4.1使用串口调试
1.4.2重定向
1.5WindView
1.5.1记录层次
1.5.2记录数据存储方式
1.5.3传送方式
1.5.4数据分析
1.6Trigger
1.7telnet
1.8调试模式
1.8.1任务调试模式下的多任务调试
1.8.2系统调试模式下多任务的调试:
1.8.3中断服务程序的调试
2V2支撑的调试手段
2.1各模块提供的函数
2.2如何查看error.log文件
2.2.1定位到具体的出错行
3V3支撑的调试手段
1.1.进程调试
1.2.查看所有进程信息:OSS_DbgGetAllUsePCBInfo
1.3.查看当前运行的进程信息
1.3.1.进程断点设置:b
1.3.2.当前进程运行信息:OSS_DbgGetCurPCBInfo
1.3.3.当前进程的消息信息:OSS_DbgGetCurMsgInfo
1.3.4.进程断点取消:bd
1.3.5.恢复进程运行:tr
1.4.内存观察
1.4.1.消息队列堆积、阻塞观察:tw
1.4.2.任务消息队列观察:OSS_DbgShowQueueCtl
1.4.3.任务UB使用观察:OSS_DbgShowTaskUB
1.4.4.进程使用UB情况:OSS_DbgShowProcUBInfo
1.4.5.UB的配置和当前状态:OSS_DbgMemUbUsePrn/ OSS_DbgShowUbPool
1.5.通信和定时器状态观察
1.5.1.通信状态显示OSS_DbgShowComm
1.5.2.测试板间通信是否正常:OSS_DbgRudpPing
1.5.3.单板上定时器的使用信息:OSS_DbgGetTimerInfo
1.5.4.单板进程使用定时器的信息:OSS_DbgGetTimerInfoOfProc
1.6.杂项观察
1.6.1.异常发生后信息观察:OSS_DbgShowExcInfo
1.6.2.堆栈使用率/运行时间统计:zte
1.6.3.进程最近打印内容观察:ztecall/ ztemsg
1.6.4.进程最近打印的1K内容和打印时间:zteprint
附件 26 技 术 文 件 技术文件名称:VxWorks 的调试手段 技术文件编号: 版 本:3.0 共 页 (包括封面) 拟 制 审 核 会 签 标准化 批 准
VxWorks 的调试手段 文件编号 版本号 修改记录 拟制/修 改日期 拟制人/ 修改人 更改理由 主要更改内容 (写要点即可) 注 1:每次更改归档文件(指归档到事业部或公司档案室的文件)时,需填写此表。 注 2:文件第一次归档时,“更改理由”、“主要更改内容”栏写“无”。 第 1 页 共 38 页
VxWorks 的调试手段 目 录 1 TORNADO 的调试工具................................................................................................................. 4 1.2 1.3 1.4 1.5 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 WINDSHELL.............................................................................................................................. 4 简介 ............................................................................................................................ 4 功能键........................................................................................................................ 5 特殊控制符................................................................................................................ 6 计算功能 .................................................................................................................... 6 环境变量 .................................................................................................................... 6 内置指令 .................................................................................................................... 6 BROWSE................................................................................................................................17 内存查看 .................................................................................................................. 18 模块信息 .................................................................................................................. 18 堆栈使用率.............................................................................................................. 18 CPU 占有率............................................................................................................. 19 任务信息 .................................................................................................................. 20 中断向量表.............................................................................................................. 20 实体查看 .................................................................................................................. 20 DEBUGGER.............................................................................................................................. 21 条件断点 .................................................................................................................. 21 代码显示 .................................................................................................................. 21 TARGET SERVER...................................................................................................................... 22 使用串口调试 .......................................................................................................... 22 重定向...................................................................................................................... 22 WINDVIEW..............................................................................................................................22 记录层次 .................................................................................................................. 22 记录数据存储方式 ..................................................................................................23 传送方式 .................................................................................................................. 23 数据分析 .................................................................................................................. 23 TRIGGER..................................................................................................................................24 1.6 1.7 TELNET.................................................................................................................................... 25 1.8 调试模式................................................................................................................................ 25 任务调试模式下的多任务调试..............................................................................27 系统调试模式下多任务的调试: ..........................................................................28 中断服务程序的调试..............................................................................................28 1.8.1 1.8.2 1.8.3 1.3.1 1.3.2 1.4.1 1.4.2 1.5.1 1.5.2 1.5.3 1.5.4 2 V2 支撑的调试手段.......................................................................................................................29 2.1 各模块提供的函数................................................................................................................ 29 2.2 如何查看 ERROR.LOG 文件.................................................................................................... 30 定位到具体的出错行..............................................................................................31 2.2.1 3 V3 支撑的调试手段.......................................................................................................................31 1.1. 进程调试................................................................................................................................ 31 1.2. 查看所有进程信息:OSS_DBGGETALLUSEPCBINFO........................................................ 32 第 2 页 共 38 页
VxWorks 的调试手段 1.3. 查看当前运行的进程信息.................................................................................................... 32 1.3.1. 进程断点设置:b.................................................................................................... 32 1.3.2. 当前进程运行信息:OSS_DbgGetCurPCBInfo................................................... 32 1.3.3. 当前进程的消息信息:OSS_DbgGetCurMsgInfo................................................32 1.3.4. 进程断点取消:bd..................................................................................................32 1.3.5. 恢复进程运行:tr....................................................................................................32 1.4. 内存观察................................................................................................................................ 33 1.4.1. 消息队列堆积、阻塞观察:tw..............................................................................33 1.4.2. 任务消息队列观察:OSS_DbgShowQueueCtl .....................................................33 1.4.3. 任务 UB 使用观察:OSS_DbgShowTaskUB ........................................................34 1.4.4. 进程使用 UB 情况:OSS_DbgShowProcUBInfo................................................. 35 1.4.5. UB 的配置和当前状态:OSS_DbgMemUbUsePrn/ OSS_DbgShowUbPool......35 1.5. 通信和定时器状态观察........................................................................................................ 35 1.5.1. 通信状态显示 OSS_DbgShowComm .....................................................................35 1.5.2. 测试板间通信是否正常:OSS_DbgRudpPing..................................................... 36 1.5.3. 单板上定时器的使用信息:OSS_DbgGetTimerInfo........................................... 36 1.5.4. 单板进程使用定时器的信息:OSS_DbgGetTimerInfoOfProc............................36 1.6. 杂项观察................................................................................................................................ 36 1.6.1. 异常发生后信息观察:OSS_DbgShowExcInfo......................................................36 1.6.2. 堆栈使用率/运行时间统计:zte...........................................................................36 1.6.3. 进程最近打印内容观察:ztecall/ ztemsg........................................................37 1.6.4. 进程最近打印的 1K 内容和打印时间:zteprint...............................................37 第 3 页 共 38 页
VxWorks 的调试手段 VxWorks 下的调试手段 主要介绍在 Tornado 集成开发环境下的调试方法,和利用支撑定位问题的步骤、思路。 1 Tornado 的调试工具 嵌入式实时操作系统 VxWorks 和集成开发环境 Tornado 的组成结构如下图 1。分为主机 和目标机系统。 图 1 集成开发环境结构图 在 Tornado 下,调试相关操作在 Debug 菜单下,包括: 图 2 Debug 菜单 简单解释各菜单项的功能 1.1 WindShell 1.1.1 简介 Vxworks 的 Shell 分为两种:host shell 和 target shell; Tornado 提供的 WindShell 建立了 2 者间的一个桥梁, 从宿主机到目标机之间的一个命 令 shell。WindSh 是一种非常受欢迎的开发工具,它具有很强的交互性和可操作性,允许 第 4 页 共 38 页
VxWorks 的调试手段 用户调用内存中的应用程序模块或是 VxWorks 模块中的任何例程。它不但具有一般命令语 言的功能,而且也具有 C 语言的设计特点,能够解释几乎任何 C 语言表达式, 执行大多 数 C 语言算子,解析符号表数据。对初用者来说,WindSh 学习起来比较简单,使用比较方 便,对熟练用户而言,则有较为高级的手段可以应用。 WindSh 是一个驻留在主机内的 C 语言解释器,通过它可运行下载到目标机上的所有函 数,包括 VxWorks 系统调用和应用函数。Tornado 外壳还能解释常规的工具命令语言 TCL。 WindSh 不仅可以解释几乎所有的 C 语言表达式,而且可以实现所有的调试功能。它主 要有以下调试功能:下载软件模块;删除软件模块;产生任务;删除任务;设置断点;删除 断点;运行、单步、继续执行程序;查看内存、寄存器、变量;修改内存、寄存器、变量; 查看任务列表、内存使用情况、CPU 利用率;查看特定的对象(任务、信号量、消息队列、 内存分区、类);复位目标机等。 1.1.2 功能键 Tab 补齐剩余部分 Ctrl+D  显示与之匹配的所有符号 -> CurM^D _CurMaster _CurModule  补齐剩余部分: ->CurMo^D ->CurModule  显示命令摘要 ->moduleShow ^D moduleShow() - show the current status for all the loaded modules (WindSh) STATUS moduleShow ( char * moduleNameOrId /* name or ID of the module to show */ ) Ctrl+W 键入完整的命令后,继续键入空格 + [Ctrl+W]。将会显示 html 页帮助信息. Ctrl+H 删除一字符 Ctrl+U 删除一行 CTRL+C 重起 shell CTRL+X Reboot CTRL+S 临时挂起输出 CTRL+Q 恢复挂起 Esc 第 5 页 共 38 页
VxWorks 的调试手段 在输入和编辑模式间切换 输入类似 Vi 编辑命令, 如[Esc + k]:显示前一次输入的命令 h←j↓k↑l→ h()设置命令缓冲区长度。->h 500 1.1.3 特殊控制符 ? @ > < 行 C 和 TCL 模式转换符号, 在 c 模式下敲?进入 tcl 模式, 在 tcl 下敲?则进入 c 模式; 在 target 还是在 host 上运行, 在指令前加上@则在 target 上运行, 否则在 host 上运 指令输出重定向 指令输入重定向 1.1.4 计算功能 数据转换:键入整数或字符后回车可以显示该整数的十进制及十六进制值。也可以键入 字符常量或符号地址。 比如: ->0x54+64 value = 148 = 0x94 ->x = (8 * 6) / 4 x = 0x20ff378: value = 12 = 0xc -> Nom = “Nelson” new symbol “Nom” added to symbol table. Nom = 0x23fe798: value = 37742496 = 0x23fe7a0 = Nom + 0x8 1.1.5 环境变量 使用 ?shConfig 命令修改环境变量: SH_GET_TASK_IO 为调用函数设置 I/O 重定向。ON:重定向到 WindSh;OFF:I/O 显示到目标机控制台。 LD_PATH 为模块设置搜索路径,用“;”隔开。 例如:ld 命令提交后,Shell 搜寻模块的 路径顺序为:首先在当前目录,然后到 LD_PATH 设置的路径。 LD_SEND_MODULES 设置 load 模式。 以下 3 个用不到 LD_CALL_XTORS LD_COMMON_MATCH_ALL DSM_HEX_MOD 1.1.6 内置指令 1.1.6.1 所有内置指令 tcl> set shellProcList 第 6 页 共 38 页
VxWorks 的调试手段 intVecShow iStrict b bh bd bdall c cret e s so sysResume sysSuspend d l ld lkAddr lkup m mRegs unld agentMode Show browse checkStack classShow devs i iosDevShow iosDrvShow iosFdShow memPartShow memShow moduleIdFigure moduleShow mqPxShow mqShow msgQShow rBuffShow semPxSho w semShow show smMemPartShow smMemShow sysStatusShow taskShow trgShow version wdShow sp sp s taskIdDefault taskIdFigure td ti tr ts tt bootChange cd h help ls period printErrno prin tLogo pwd quit reboot repeat shellHistory shellPromptSet cplusDtors wvHostInfoShow evtBufferToFile hostShow icmpstatShow ifShow inetstatShow ipstatShow routestatShow taskCreateHookShow taskDeleteHookShow taskSwitchHookShow taskRegs Show tw w taskWaitShow tcpstatShow tftpInfoShow udpstatShow cplusStratShow cplus Ctors cplusXtorSet 1.1.6.2 任务管理 sp 用缺省参数创建一个任务(priority=100 返回值为任务 ID,或错误),立刻返回。任 务的 I/O 不被重定向到 shell。 如果直接敲例程名,回车,执行完才返回。I/O 被重定向。 sps tr ts td 与上者不同在于启动该任务后马上将其挂起 恢复一个挂起的任务 挂起一个任务 删除一个任务 period 创建一个周期调用函数的任务 period 5 testPrn 每隔 5 秒调用 testPrn,易于做调试打印。 repeat 创建一个重复调用函数的任务 repeat 10 testFunc1 连续执行 10 次 testFunc1 函数,易于做测试用。 mRegs 修改任务的寄存器变量。比较有用的是修改 pc 值,使程序退回到具体位置再运行。 程序位置可以使用 shift+F7(混合汇编方式显示代码) -> mRegs "pc", s1u0 pc : 0499efd7 - 0x499efd1 1.1.6.3 任务状态信息 i 显示系统信息: NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY ---------- ------------ -------- --- ---------- -------- -------- ------- ----- tExcTask 0 iStrict 类似于 i,但只查询目标机一次 _excTask 4b7908c 4276be 4b79170 0 PEND d0003 ti 显示相应任务的 TCB 信息: 第 7 页 共 38 页
分享到:
收藏