疑难问题记录
cppDreaming
这个作者很懒,什么都没留下…
展开
-
C++ new abort
Thread 1 “SLRobot” received signal SIGABRT, Aborted.__GI_raise (sig=sig@entry=6) at …/sysdeps/unix/sysv/linux/raise.c:5151 …/sysdeps/unix/sysv/linux/raise.c: No such file or directory.(gdb) bt#0 __GI_raise (sig=sig@entry=6) at …/sysdeps/unix/sysv原创 2021-07-22 10:26:32 · 1221 阅读 · 0 评论 -
tcp大包数据发送和接收不一致
typedef struct packge_data_header{| uint16_t totalCount;| uint16_t seq;| uint32_t totalSize;| }PACKAGE_DATA_HEADER;typedef struct nav_header {| uint16_t ICode; ////固定识别码| uint16_t Command; ////命令字| uint16_t se原创 2021-07-22 10:24:45 · 1462 阅读 · 0 评论 -
文件描述符泄露引发的一系列异常问题
现象:1、机器人上app点击 暂停、继续、任务取消操作,均无效2、ros服务调用失效,程序中无法通过服务调用的形式来给导航下发命令定位过程:1、故障出现时候,看日志有ros服务调用失败的打印,但是此时通过命令行调用ros服务是生效的,这说明ros的服务方是没有问题的。2、查询ros服务调用本质上是通过tcp来实现的,1、需要创建socket2、需要建立tcp连接3、连接成功后开始信息交互3、因为第一步已经排除的服务端的问题,那就是客户端在以上三个环节中出了问题。4、检查是否存在socke原创 2021-07-22 10:23:31 · 329 阅读 · 0 评论 -
偶现 tcp server端和client端异常关闭,且重连后立马又断开
原因:服务端在收到客户端发的大数据且进入到异常流程时候,没有释放锁,导致死锁。死锁后就无法维持心跳,就会因为心跳超时断开连接,进入timewait状态。客户端触发重连,重连后,服务端已连接队列里有新连接,但是因为服务端套接字accept(接受连接)和处理连接是在一个线程里,所以该新连接一直在已连接队列中达不到处理,5秒后,客户端测到心跳超时,又触发重连。循环往复定位方法:gdb打印服务端套接字监听处理线程的调用栈,发现它死锁了...原创 2021-07-22 10:17:51 · 653 阅读 · 0 评论 -
机器人扫大地图过程中引发进程崩溃问题
现象:扫大地图过程中,点击扫图完成没有反应,无法结束扫图。定位:一、查看slam进程的log,发现slam进程重启过,但其他进程没有重启记录,说明slam是由于异常退出导致的重启。二、当时由于没有开启core dump,所以没有生成core文件,好在该问题好复现,用gdb把slam程序启起来,然后开始扫大地图。三、一段时间后gdb捕获到进程abot信号,打印调用栈发现,vector容器调用push_back的时候触发了abort,一般这种现象只有两种情况:1、vector的元素调用构造函数出了问原创 2021-07-22 10:14:58 · 110 阅读 · 0 评论 -
tcp+protobuf引发的问题
现象:slam进程通过protobuf序列化之后发出的数据 到达 SLRobot进程后,SLRobot调用read总是返回0,导致该数据得不到处理。定位:1、在发送端将发送的数据长度打印出来,发现是0结论:probotbuf会对数据进行优化,优化后序列字符串就是空的解决:任务protobuf结构中有一个字段一定要赋予一个非默认值...原创 2021-07-22 10:13:13 · 333 阅读 · 0 评论 -
排序引发的CPU居高不下的问题
gdb 调试过程中,cpu一直被排序函数占着,排序函数陷入死循环std::sort(vWifiListMulInfo.begin(), vWifiListMulInfo.end(), std::greater())当我们调用sort进行排序的时候,首先会判断元素个数,如果大于16,则先进行快排(分割算法),等数据呈有序小块的时候再调用插入排序进行合并。在快排那里,它首先要找到调用自定义比较函数返回false的那个数据(cmp(first,pivot)),如果返回true就一直向后找,注意这里是没有进行原创 2021-07-22 10:11:50 · 146 阅读 · 0 评论