6314|2

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

vxworks:page fault [复制链接]

 请求大侠帮忙!
在调试vxworks程序的过程中,总是会出现错误信息:page fault

我的环境是:P3的CPU,Tornado2.2,Vxworks5.5

调试信息显示为:
Exception number 14: Task: 0x1fb34078 (tDbgTask)

Page Fault
Program Counter: 0x0236244a
Status Register: 0x00010186
Error Code     : 0x00000002
23b3a99  guidemo        +e9 : InitGUI ([eeeeeeee, eeeeeeee, eeeeeeee, 1fe7ed68, eeeeeeee])
239d530  InitGUI        +60 : InitGAL ([23b3940, 23b3936, 1fb34048, 23b3a9e, eeeeeeee])
235f152  InitGAL        +72 : InitWindml (23b720c, 0, 0, 0)
23641f2  InitWindml     +92 : i81xDevInit (1db0e510, 10, 0, 0)
2363efc  i81xDevInit    +9c : i81xGartInitialize (1db0e510, 0, 1000000, 1fb33fb4)
2362730  i81xGartInitialize+40 : excStub ([&InitWindml, 0, 0, 0, 400])
336b36   excStub        +46 : excExcHandle (e, 1fb33f40, 1fb33f18, 1)
330e98   excExcHandle   +38 : vxExcHookWrapper (e, 1fb33f40, 1fb33f18, 1fb33ea8)
329b4c   vxExcHookWrapper+6c : wdbExcHook (3, 1fb34078, e, 1fb33f40, 1fb33f18, e, 1fb33e70
, 329af5)
3e771e   wdbExcHook     +9e : wdbEventPost ([&wdbExcEvtNode, 1fb33ecc, 1fb33e30, 3e7712, &
wdbExcHook])
3e50a7   wdbEventPost   +77 : wdbNotifyHost ([0, 3, 1fb34078, 1fb33e24, 3f6963])
3e3996   wdbNotifyHost  +26 : udpCancel ([0, 0, 1fb33de0, 3e3984, 0])
3e70e8   udpCancel      +18 : vxSemGive ([1fb5f0ac, 206, &taskSwitchTable, 1fb5eeb0, 1fb33
dd8])

Break at 0x0032a612: vxSemGive + 0x12        Task: 0x1fb34078 (tDbgTask)


用tshell检查地址结果为:
-> lkAddr 0x00010186
wrs_kernel_text_start     0x00308000 text     (vxWorks)
_sysInit                  0x00308000 text     (vxWorks)
_wrs_kernel_text_start    0x00308000 text     (vxWorks)
sysInit                   0x00308000 text     (vxWorks)
sysInByte                 0x00308080 text     (vxWorks)
sysInByte0                0x0030808c text     (vxWorks)
sysInWord                 0x00308090 text     (vxWorks)
sysInWord0                0x0030809d text     (vxWorks)
sysInLong                 0x003080a0 text     (vxWorks)
sysInLong0                0x003080ac text     (vxWorks)
sysOutByte                0x003080b0 text     (vxWorks)
sysOutByte0               0x003080bb text     (vxWorks)
value = 0 = 0x0


我感觉好像是进行了非法地址的读写,但是不知道原因在哪,怎么查找改正
请各位大侠多多指教!!

最新回复

谢谢ningxin! 我再试试找找原因  详情 回复 发表于 2007-10-14 10:08
点赞 关注
 

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
调试是这样看的:
从23b3a99这个地址,调用了guidemo;在guidemo程序偏移量+e9的地方,调用了InitGUI,
从239d530(InitGUI的地址),调用了.......


直到 udpCancel函数里,调用了vxSemGive函数,但是这个函数的0x12偏移量地址,是个非法地址,这个地址要么是没有在映射之中,要么是作为程序段没有可执行的代码。这个地址你可以从vxSemGive的参数里得到(应该就是PC指针)。
具体怎么解决,就看你代码啦!     
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢ningxin!
我再试试找找原因
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表