vxworks中page fault如何解决,急急急

xiaowenhao 2004-10-21 12:29:56
程序运行一段时间后出现
Page Fault
Program Counter: 0x30303030
Status Register: 0x00010283
Error Code:0x00000000
以及出现故障的任务,自此程序不能执行下去。

在这种情况下,我是否可以利用信号处理程序,在其中调用taskDelete()终止此任务,接着调用
taskSpawn()重新发起此任务,从而使程序执行下去。

另一种解决办法能否在程序一开始就调用sigsetmask()将引起任务挂起的信号屏蔽,从而使程序不会进入异常处理。

这两种办法是否可行,望高人指点。
...全文
466 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
maplewasp 2004-11-10
  • 打赏
  • 举报
回复
堆栈,就是taskSpawn()函数中的一个参数,你查一下此函数的用法就知道了。
xiaowenhao 2004-10-31
  • 打赏
  • 举报
回复
我做的不是图形系统,怎么看堆栈开了多少?
98440622 2004-10-30
  • 打赏
  • 举报
回复
你的堆栈开了多少?
maplewasp 2004-10-27
  • 打赏
  • 举报
回复
你的应用是图形系统吗?
maplewasp 2004-10-22
  • 打赏
  • 举报
回复
可能你有些补丁没有装。
xiaowenhao 2004-10-22
  • 打赏
  • 举报
回复
在任务挂起时,显示出来的寄存器状态不知说明哪里出了问题。由于其他任务均运行正常,我在shell下用taskRestart()重新启动此挂起的任务后,此任务又能正常运行了。
xiaowenhao 2004-10-21
  • 打赏
  • 举报
回复
这种情况有时程序连续运行十个小时都不会出现,十分难捕捉
maplewasp 2004-10-21
  • 打赏
  • 举报
回复
既然你的程序出现了异常,说明你的程序是有问题的。为何要屏蔽?
既然有Bug,就要想办法通过调试把Bug揪出来。你可以在shell下
用tt 命令追踪你的程序执行路径,然后找到你的程序出错的地方。
进而想办法干掉他。
AutoAsm 2004-10-21
  • 打赏
  • 举报
回复
可能是非法指针,类似linux的segment fault

猜测,没用过

2,425

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 其他硬件开发
社区管理员
  • 其他硬件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧