VxWorks 7.0 RTP CoreDump 生成Dump文件后,无法Delete RTP

断点2019 2021-03-22 10:23:25
最近在研究VxWorks的RTP Core Dump功能,在VIP中开启了RTP Core Dump功能如下所示

在RTP code中触发异常,Core Dump可以正常生成与调试

但是灵异的事情发生了,在shell中调用rtp查看rtp列表时,发现RTP名称变成乱码(正常应该是启动路径名称),尝试用RTP delete RTPID,提示错误信息RTP deletion has failed. Errno = 0x3d0003 (S_objLib_OBJ_DELETED,应该是RTP对象已经被删除),在Workbench中可以Terminate RTP,但是Shell调用rtp查看列表时,依旧存在乱码名称的RTP,在关闭RTP CoreDump功能后,异常时RTP会正常自动删除干净

那么下面再做一个测试,在RTP 异常后CoreDump生成过程中,立即调用rtp查看列表,此时RTP Name还是正常的名称,待生成完后,再查看,就变成异常Name(应该是Name指针内容都释放掉了)

另外可以看到RTP的状态变成STATE_NORMAL+D,手册官方解释为(The RTP is in RTP_STATE_NORMAL state and its status is in RTP_STATUS_ELECTED_DELETER. This indicates that the RTP has initiated its delete phase.),看上去应该是在RTP delete的初始化后出现了一些情况导致无法完全删除RTP,目前看上去只有重新启动VxWorks才可以,但是出于某些原因,如果未来要加上Core Dump功能去排查问题,又不可以随便重启系统(重启系统后,板卡会Reset,控制会出问题),但是这个功能确实是个实用的功能,不知道各位有没有这方面的尝试或者经验,可以释放掉Core Dump结束的RTP
...全文
2532 1 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
断点2019 2021-11-14

将EDR出错处理修改为用户自定义后发现在Core Dump生成后,调用了Stop Task,在删除Stopped task时,如果task本身处于Task
Safe时,那么接下来的delete task将出现错误,造成如题的情况,解决办法时,让task continue run或者不要Stop,然后删除任务,缺陷是其他的任务还会向下执行,如果对业务逻辑没有影响的话,就可以正常完全删除RTP了

  • 打赏
  • 举报
回复
发帖
VxWorks
加入

2118

社区成员

xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
申请成为版主
帖子事件
创建了帖子
2021-03-22 10:23
社区公告
暂无公告