当前位置:首页 >> 电力/水利 >>

tornado调试技巧


中兴通讯

tornado调试培训

网络上海软件开发二部 康剑
www.zte.com.cn

中兴通讯

提纲
?Tornado调试概述

?crossWind (tornado debugger)
?browser ? windSh(torna

do shell) ?WindView

shell tornado,

www.zte.com.cn

中兴通讯

crossWind

? Tornado调试概述 ? crossWind (tornado debugger) ? browser ? windSh(tornado shell) ? WindView

www.zte.com.cn

中兴通讯

crossWind调试器

? 重要步骤: 1、配置tools->target server->config a、在target name/ip address中输入目标板子的 ip地址。 b、在back end 处选上wdprpc,如果网络不好, 可以在timeout中输入2s c、在core file and symbols的文件中选上需要 调试的vxWorks或vxWorks.st d、memory cache Size 设置为10000。 e、这样就可以启动这个target server了
www.zte.com.cn

中兴通讯

crossWind调试器

? 重要步骤 2、Debug->Source search path 中加上你要调试 的原代码的路径。

www.zte.com.cn

中兴通讯

crossWind调试器-常用功能

? breakPoint:设置断点,当任务执行到本断点后会 stop,前提是我们设置了 auto attach to task,在 没有设置此选项的情况下,必须手工attach 到某一任 务。 有全局断点和任务断点 ? Step: 单步功能,跟其他调试环境类似。 ? Watch: 设置watch 变量。 ? Variable:变量查看,主要是当前被调试的函数的局 部变量和全局变量。 注意: Watch Variable和显示的变量值可能会不对, 最好去和内存中去确认,或者看寄存器或者打印。 (arm) ? Registers: 查看寄存器当前值。 ? Memory:查看内存值。
www.zte.com.cn

中兴通讯

crossWind调试器-常用功能

? Back trace: 栈回溯,通过栈回溯,可以看到 函数的调用关系,针对每一个栈帧,可以查看 调用时各个函数的执行环境,包括参数、寄存 器等。 ? Attach: attach到某一运行任务,attach之后, 整个任务便在调试器的控制之下。 ? Run: 创建一个任务,并执行,调试器会自 动attach到这个任务。 ? Diassemble: 反汇编能力,可以和c语言同时 对应显示
www.zte.com.cn

中兴通讯

crossWind调试器

常见问题: 1、 如果在taskSpawn的时候选项中设置了 VX_UNBREAKABLE ,那么就不能设置断点 调试。 ? 2、如果打开了优化开关,O2那么无法单步调 试,代码和汇编对不上。 ? 3、 编译时没有使用-g编译开关。 会无法设 置断点 ? 4、断点位置不准确 ,和代码对不上,可能是 由于链接的不是该原代码文件,或者代码和 target server的版本有差异
www.zte.com.cn

中兴通讯

browser

? Tornado调试概述 ? crossWind (tornado debugger) ? browser ? windSh(tornado shell) ? WindView

www.zte.com.cn

中兴通讯

Browser-堆栈

? 1、察看stack信息 可以察看当前stack使用量 可以察看最大stack的使用量 注意: 如果在taskSpawn的时候选项中设置了 VX_NO_STACK_FILL,那么就无法察看 stack的使用量。
在shell中用checkStack也可以察看stack的使用
www.zte.com.cn

中兴通讯

Browser-spy

? Spy : 察看cpu占有率。 当感觉系统运行很慢时,可以用spy察看哪些任 务占cpu太多时间了。 注: 有的tornado显示用不了spy,那么可能要把 spyLib.o 这个文件copy到lib/objppc603gnuvx 目录下。

www.zte.com.cn

中兴通讯

Browser-其它

? 任务信息 i,ti ? 内存信息 memShow ? Module 信息

www.zte.com.cn

中兴通讯

windSh(tornado shell)

? Tornado调试概述 ? crossWind (tornado debugger) ? browser ? windSh(tornado shell) ? WindView

www.zte.com.cn

中兴通讯

Windsh-任务信息

?i 所有任务的名字,入口函数,tid,优先权,当前pc, sp,错误号等 注意:如果显示中任务名为空,则很有可能发生了越 栈现象。tid就是tcb块开始的地址,可以通过这个地址 察看和修改里面的内容 ? ti (参数为任务名或tid) 显示任务tcb块的完整信息。通常关注信息是: 堆栈的信息(栈头,栈尾,最大使用栈的大小) 寄存器(sp(ppc里的r1)的值,pc的值,函数参数 值(ppc的r3,r4,r5),fp(如ppc的r31))
www.zte.com.cn

中兴通讯

Windsh-任务信息

? sp 函数名,参数值 发起一个新的任务,任务名为t1,t2….. ? ts 挂起一个任务, ? tr 让任务继续运行 ? td 删除一个任务
www.zte.com.cn

中兴通讯

Windsh-任务信息

? tt
显示一个任务的栈的函数回溯信息(还包含了调用的函数的参数)
tt "logTask" 3ab92 _vxTaskEntry +10 : _logTask (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ee6e _logTask +12 : _read (5, 3f8a10, 20) d460 _read +10 : _iosRead (5, 3f8a10, 20) e234 _iosRead +9c : _pipeRead (3fce1c, 3f8a10, 20) 23978 _pipeRead +24 : _semTake (3f8b78)

注:有时堆栈被破坏,tt无法显示,可以选择修改sp的值,让它退到可以回 溯的栈的位置。mRegs修改寄存器。或直接修改内存的tcb块

? tw
可以显示指定任务是挂起在那个信号量上。 注意:只能在tornado的shell中使用,在tShell中不能使用。

www.zte.com.cn

中兴通讯

Windsh-内存相关

? d ,地址,显示的单元数,宽度(1,2,4,8) 显示内存 ? m 地址,宽度 修改内存 ? MemShow 1 显示内存的使用信息,如后参数1则显示详细 的free memory信息

www.zte.com.cn

中兴通讯

memShow

memShow 1 FREE LIST: num addr size --- ---------- ---------1 0x3fee18 16 2 0x3b1434 20 3 0x4d188 2909400 SUMMARY: status bytes blocks avg block max block ------ --------- -------- ---------- ---------Current free 2909436 3 969812 2909400 alloc 969060 16102 60 – Cumulative alloc 1143340 16365 69 -

? 如果内存链表给破坏了,可以通过和正常的free list比 较推断破坏在哪个地方。
www.zte.com.cn

中兴通讯

Windsh-和代码相关

?l 反汇编,由于static的函数名没有包含进符号表,所以 不能完全看出代码是哪个具体的函数, 要想准确知道,可以在tornado 的debug中用反汇编或 者用objdumpppc -d ? lkAddr 察看该地址离哪些符号(函数名,全局变量名)比较近。 ? lkup 察看变量的地址 注: 符号表是通过symTbl.c链接进来的,只包含了全局 信息。

www.zte.com.cn

中兴通讯

Windsh-和调试相关

? b 设置和显示断点 b就是显示断点,b 地址-设置断点 ? bd 删除断点 bd 地址 ? bdall 删除所有断点 ? bh 设置硬件断点 如:PPC860就可以,PPC604就可以设置读写 内存的断点。

www.zte.com.cn

中兴通讯

Windsh-其它

? devs 显示系统所有设备 可以找出对应的串口号。 ? semShow 显示信号量的信息

www.zte.com.cn

中兴通讯

WindView

? Tornado调试概述 ? crossWind (tornado debugger) ? browser ? windSh(tornado shell) ? WindView

www.zte.com.cn

中兴通讯

windView

? 察看和分析任务执行信息的图型工具。 ? 不常用

www.zte.com.cn

中兴通讯

结束

问题与解答???

谢谢!!!

www.zte.com.cn


相关文章:
浅谈Tornado2.2下程序调试
浅谈Tornado2.2下程序调试_计算机软件及应用_IT/计算机_专业资料。浅谈 Tornado2.2 下程序调试调试一段程序的难度是写出这段程序的难度的两倍,因此,如果你的...
Tornado使用(debug篇)
Tornado 使用(debug) debug 涉及到的按钮有: 其中: 启动仿真器 shell 启动 ...点击 按钮,输入需要调试的函数 (对于 VxWorks 应该说是个任务)以及传递的参数 ...
tornado调试工具介绍
tornado调试工具介绍_信息与通信_工程科技_专业资料。详细介绍vxworks下tornado调试...tornado 调试技巧 24页 免费 Tornado使用指南 32页 免费 Tornado 开发环境 55页...
VxWorks调试手段和方法研究
VxWorks 调试手段和方法研究 VxWorks 是由美国WRS(风河)公司开发的一个运行在目标机上的高性能、可裁剪的 嵌入式实时操作系统。目前我们使用的Tornado集成开发环境为...
Tornado使用指南
从 1995 年以后, WRS 公司推出了一套实时操作系统开发环境-- TornadoTornado2.0 组件 Tornado 是嵌入式实时领域里最新一代的开发调试环境。 。Tornado 给嵌入...
tornado工程创建教程以及使用方法
所以它一般用在工程调试阶段。下面以 arm 为例分别就两种格式作 一个详细的论述。 创建 bootable 格式的工程。启动 tornado 后进入”file->new project?”出现 ...
tornado中windview使用手册(附实例)
tornado中windview使用手册(附实例)_计算机软件及应用_IT/计算机_专业资料。用实例...tornado_调试技巧 24页 免费 Modbus标准通讯协议格式 17页 免费 tornado教程 68...
Vxworks 开发工具(tornado)的使用教程
我们 称宿主机上的这套集成开发环境为 Tornado,编译生成的目标机上的可执行代码 IMAGE 为 VxWorks。在系统安装的时候,集成调试环境和 VxWorks 的原材料(一些 obj ...
VxWorks的调试手段
下的调试手段主要介绍在 Tornado 集成开发环境下的调试方法,和利用支撑定位问题的...tornado 调试技巧 24页 免费 VxWorks 6.3 编程调试要... 11页 免费 VxWorks ...
没有目标板的vxWorks Tornado2.2联机调试步骤
没有目标板的 vxWorks Tornado2.2 联机调试步骤 1: 新建一个 downloadable 工程,其中 a tool chain 选择 SIMNT gnu 。在此工程中新 建一个 c++ source 测试...
更多相关标签:
tornado调试 | tornado 调试模式 | vs调试技巧 | eclipse调试技巧 | xcode调试技巧 | chrome调试技巧 | js调试技巧 | c 调试技巧 |