openDDS通信过程中出现异常: (1388|2978735184) ERROR: TransportReactorTask::svc caught exception
Posted blackandwhite
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openDDS通信过程中出现异常: (1388|2978735184) ERROR: TransportReactorTask::svc caught exception相关的知识,希望对你有一定的参考价值。
1. 根本原因: 引用了不存在的序列类型中的内存.
比如 序列 OctecSequence data; 如果 data分配的内存为空, 如果引用 data[0] 就会引起该异常.
2. 本场景出现异常就是因为, DataReadListener数据监听接口On_data_availiable, 监听到了一个数据包,
在之后使用该数据包时,没有添加判断,直接使用了包中的数据. 引起异常.
3. 出现的异常信息中 1388代表进程, 通过ps可以查看是哪个进程出现的问题.
4. 场景中也出现了TransportReactorTask::svc caught exception - std::bad_alloc 的异常,
由于该异常情景没能再现,所以没法追踪bug, 估计原因是一样的.
以上是关于openDDS通信过程中出现异常: (1388|2978735184) ERROR: TransportReactorTask::svc caught exception的主要内容,如果未能解决你的问题,请参考以下文章
OpenDDS - DCPSInfoRepo 被终止,但发布者和订阅者正在通信
OpenDDS - Windows下安装过程(VS2015)