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, 估计原因是一样的.

  

原文地址:https://www.cnblogs.com/blackandwhite/p/13150891.html