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)

OpenDDS 错误 transport_type=tcp 未注册 :(

try与except处理异常语句

配置 OpenDDS

codevs 1388 砍树