二层交换机,从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 ()
这种machine check exception中断一般有什么引起啊?
next instruction address: 0x0171d75c。 什么是异常下调指令的地址啊?内存里找不到这个地址啊?
打印出的那个task我们可以找到,但是找不出什么错误来
下面打印出的theCaller在我们编译源代码生成镜像时的产生的一个ram.map(里面是镜像在内存中的分布)里找不到,但是前三个Function的入口地址却可以查到
但是最后一行的Caller和function都找不到,难道是内核调用内核的?上面这段看不懂啊,哪位高手可以帮忙解释一下啊?这些错误是内核给打印出来的吗?
还有这种错误一般怎么调比较好啊?我都无从入手,给的几个函数入口地址我也找不到什么错误
1楼
不知道你用的什么CPU,但很有必要查一下MSR=0x00029200的时候到底是报的什么错误.问题应该出在地址为0x171d74c的函数中.根据以往调试经验,出现MSR错误的最常见情况有两种,其一:数据错误,通常为对齐问题,其二:特殊指令执行与机器状态不符.且根据你的情况看,第一种的可能性比较大,因为你的代码原来是可以跑的,只是因为换了操作系统和编译器,导致在优化和对齐上有变化. 如果能进一步跟踪提供更为详细的错误,会对分析有帮助.
最新人才