3472|3

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

[求助]谁能帮我看看这个问题怎么解决,如何调试啊? [复制链接]

二层交换机,从vxworks5。4移植到5。5,同事费了好多劲终于能把交换机调起来
现在用脚本在cli下建vlan 1-1000时,telnet功能崩溃,只能通过串口连接
下面是出错的log

machine check
Exception next instruction address: 0x0171d75c
Machine Status Register: 0x00029200
Condition Register: 0x20000044
Bus Error Address Register: 0x00000000
Bus Error Syndrome Register: 0x00000000
Task: 0x7ce01b8 "TrMn"
theCaller =   0x62a7d8: theFunction =  0x1718ac4 ()
theCaller =  0x1718c44: theFunction =  0x171ae80 ()
theCaller =  0x171aedc: theFunction =  0x171d74c ()
theCaller =   0x6d8478: theFunction =   0x62a7d8 ()

Exception next instruction address: 0x0171d75c。 什么是异常下调指令的地址啊?内存里找不到这个地址啊?
task那行应该是taskid和名称吧?这个在哪可以看到啊?我觉得是内核的我们看不到
下面打印出的theCaller在我们编译源代码生成镜像时的产生的一个ram.map(里面是镜像在内存中的分布)里找不到,但是前三个Function的入口地址却可以查到
但是最后一行的Caller和function都找不到,难道是内核调用内核的?上面这段看不懂啊,哪位高手可以帮忙解释一下啊?这些错误是内核给打印出来的吗?
还有这种错误一般怎么调比较好啊?我都无从入手,给的几个函数入口地址我也找不到什么错误

最新回复

都是很好的建议! 值得学习  详情 回复 发表于 2008-5-1 06:38
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
难道是有死锁吗?
应该跟操作系统有关的
因为在5.4上就是可以的
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
   现代的处理器,一般在执行前面的指令的时候,会预取后几条指令放到指令cache里准备执行。
   Exception   next   instruction   address,说的是CPU去这个地址预取操作指令,发生了异常。这个异常可能是该地址无法访问,或者是得到的操作指令(机器码)非法。
   你的程序死在这个任务里了:TrMn。TrMn是任务名称。这个任务是自己建的,不是操作系统的。在source code里面搜这个字符串,肯定能搜到(有时候Source Insight搜不到,但是UE可以搜到)。你可以在任务崩溃之前查看那个地址是什么内容,会对定位问题有帮助。至于调用层次,对照你的代码应该是很清楚的。你可以查一下每个函数调用的参数。
   如果程序在5.4底下可以跑,5.5不能跑,那最重要的就是看修改的地方,有没有指针被修改的可能。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

4
 
都是很好的建议! 值得学习
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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