- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VxWorks的调试手段1
VxWorks 支撑系统调试手段 2004-08-17 Tornado:Vxworks集成开发环境 一 Tornado的调试工具 WindShell Browse Debugger Target Server WindView Trigger Telnet 调试模式 1.WindShell WindSh是一个驻留在主机内的C语言解释器 ,能够解释几乎任何 C 语言表达式, 执行大多数 C 语言算子,解析符号表数据 。 从宿主机到目标机之间的一个命令 shell。允许用户调用内存中的应用程序模块或是 VxWorks模块中的任何例程 。 具有调试功能: 下载软件模块;删除软件模块;创建、删除任务;设置、删除断点;运行、单步、继续执行程序、查看内存、寄存器、变量;修改内存、寄存器、变量;查看任务列表、内存使用情况、CPU利用率;查看特定的对象(任务、信号量、消息队列、内存分区、类);复位目标机等。 Shell中常用指令 功能键 特殊控制符 计算功能 环境变量 内置指令 任务管理 系统信息查看 文件操作 一组调试指令 计算功能 - x = (8 * 6) / 4 x=0x20ff378: value = 12 = 0xc - name = “Nelson” new symbol “name” added to symbol table. name = 0x23fe798: value == 0x23fe7a8 = name + 0x10 - printf (“Hello %s, number is %d.\n”, name, 0x20) value = 29 = 0x1d - x x = 0x20ff378: value = 12 = 0xc 2.Browser 可对系统对象(任务、消息队列、信号量等)和存储器使用情况进行观察的浏览器。可以方便地监视用户的 目标系统。Browser汇总了应用进程,内存消耗和一个目标内存的映像。通过 Browser,用户可以观察信号量、消息队列、内存分配、看门狗计时器、堆栈使用情况、目标 CPU使用率、对象模块结构和符号表以及每个任务的详细信息。 可以分析: 内存泄漏、内存碎片、堆栈溢出、优先级反转 内存查看 模块信息 堆栈使用情况 CPU占有率 任务信息 中断向量表 对象查看 VxWorks的组成 高效的实时内核Wind 兼容实时系统标准POSIX I/O系统 文件系统 网络特性 驻留目标工具 Wind基类 工具库 性能优化 目标代理 BSP VxSim仿真器 WindView 在运行中可以记录一些重要信息(比如:任务调度状况、信号量、消息队列、watchdog,、内存、信号)的状况,从而便于对复杂的实时系统运行状况进行分析。 可以对调度异常、资源挂死、死机等进行分析。 6.Trigger:通过设置一些触发器,触发一些操作 可以监控变量,函数的执行情况,特别对变量被修改这种问题有帮助。 和windview配合使用,使记录可控。 7.Telnet telnet功能类似shell,不用起tornado而已,省却启动target server,对release比较有用。使用方法如下: 在包含了INCLUDE_TELNET 后能使用telnet;如果要加上user/pass验证,则需要加上 INCLUDE_SECURITY 。但注意的是,下图中的pass为加密后的密码,可以使用/host/x86-win32/bin/vxencrypt 来将密码加密。 调试模式 Tornado集成环境提供两种调试模式:任务调试模式和系统调试模式。 在任务调试模式下,在一个集成环境下一个时间内只能调试一个任务。调试只影响当前被调试的任务,其它任务正常运行。在系统调试模式下,可以同时调试多个任务、中断服务程序(ISR),调试影响整个系统。 中断服务程序只能在系统调试模式下调试,不能在任务调试模式下调试。 二 V2支撑的调试方法 各模块提供的函数 R01提供的调试函数(需要将MEM_TRACE_ON宏定义打开,重新编译生成目标文件): VOID r01UBUseStatShow (VOID); 显示所有内存池的占用信息,包括内存池大小, 总个数, 使用个数, 使用峰值个数, 失败个数。如果用的个数不变小, 可以使用r01UBPoolShow来看是被谁占用; VOID r01DispCpu (VOID); 打印当前CPU占用情况 BOOL r01PcbShow (WORD16 wPno); 打印进程的运行状态 BOOL r01UBShowByPno (WORD16 pno) 显示所有进程
文档评论(0)