3329|4

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问如何解读vxwork调试tt命令的输出 [复制链接]

官方的注解是
* EXAMPLE
* .CS
*     -> 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)
*     value = 0 = 0x0
* .CE
* This indicates that logTask() is currently in semTake() (with
* one parameter) and was called by pipeRead() (with three parameters),
* which was called by iosRead() (with three parameters), and so on.

但实际看到的输出没有办法把function的parameters内容和个数对应起来,比如下面的一个在Vxwork6.4的tt输出,
long_assist_timer_stop(void) ([0, f1a27c0, 1, 55b2788, 55b27bc])
long_assist_timer_stop()不带参数,那面后面的地址信息是什么?
easy_timer_kill(int *) ([f17d3f4, f1a28b0, 55b2c34, f5d7c2a, 12])
easy_timer_kill()带一个int*参数,那后面的地址信息又是什么意思?
求高手解答。

Task Trace of task: auto_task id: 0x55b2e04
37338a vxTaskEntry    +a  : f56fcf7 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
f56fe1c auto_tsk(void) +52c: f566317 ([0, 0, 0, eeeeeeee, eeeeeeee])
f56742d auto_main(void)+1fcd: f5d62f2 ([f1a27c0, 3, 0, f21de5e, ef63f6c])
f5d7c2d auto_seq_stop(void)+217d: long_assist_timer_stop(void) ([0, f1a27c0, 1, 55b2788, 55b27bc])
f4e11f8 long_assist_timer_stop(void)+28 : easy_timer_kill(int *) ([f17d3f4, f1a28b0, 55b2c34, f5d7c2a, 12])
f4d8c9c easy_timer_kill(int *)+4c : sys_tdelete(int, int, int *) (53c256c, 0, 55b2730, f4d6ff2)
f21f932 sys_tdelete(int, int, int *)+12 : taskDelete ([53c256c, f1a27c0, 1, f5a1b2d, 0])
443790 taskDelete     +10 : 443b7b ([53c256c, 1, ffffffff, 0, 5974614])
443c7f taskDestroy    +49f: 3f51d0 (53c256c, ebe4830, 283, 443c5b)
3f523f selWakeupType  +11f: free ([50da9e0, 55b2690, 55b2694, 364758, 53c256c])
3f2b32 free           +12 : memPartFree ([4aa310, 50da9e0, 3, 55b2708, 53c256c])
3f2738 memPartFree    +108: taskSuspend (0, 50da9e0, 3f2615, 441fe7)

最新回复

你这个好像是内存重复释放引起的taskSuspen 有可能覆盖,有可能。。。 内存错了。 挺难查了  详情 回复 发表于 2010-1-2 00:28
点赞 关注

回复
举报

82

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
tt():用于显示一个堆栈信息
所以显示在你屏幕上的某些函数可能与系统内部函数相关,因为tt显示了该任务的堆栈信息。
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
tt是用来回溯函数的调用关系,通过分析堆栈内容实现的,具体分析和CPU和编译器的架构相关。
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)
这个表示
         vxTaskEntry  调用 logTask  
       logTask      再调用 read         
        read        再调用 iosRead      
        以此类推。。。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
太深奥了,看来我还要加油呀!
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(中级)

5
 
你这个好像是内存重复释放引起的taskSuspen
有可能覆盖,有可能。。。 内存错了。
挺难查了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表