BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #97114同步于 2018/1/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

【问题】结构体的析构崩溃问题

kongyue08
2018/1/13镜像同步5 回复
最近遇到一个问题,一直想不到什么原因,有一个结构体 RangeData是一个结构体,结构体应该是默认定义的 typedef std::vector<Eigen::Vector3f> PointCloud; struct RangeData { Eigen::Vector3f origin; PointCloud returns; PointCloud misses; }; gdb回溯的信息是: Thread 1 "uos_lidar_frame" received signal SIGSEGV, Segmentation fault. __GI___libc_free (mem=0xc01ab08e06aecb71) at malloc.c:2951 2951 malloc.c: 没有那个文件或目录. (gdb) bt #0 __GI___libc_free (mem=0xc01ab08e06aecb71) at malloc.c:2951 #1 0x00000000005cc782 in:RangeData::~RangeData() () #2 0x00007ffff78c1eee in match() () match函数里面声明RangeData range_data{origin, {}, {}}; (origin 是一个(0,0,0)的Eigen::Vector3f) 用的时候是数据往range_data的returns里面push_back match函数是封装在一个so库内被调用的 就是最后函数结束的时候match()结束的时候结构体的析构就崩了。 期间没有用到指针指向它 也尝试过不往里面push任何数据还是析构失败(就是声明完就结束match函数也析构失败)。
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
ABs机器人#1 · 2018/1/13
bd
sonyok17机器人#2 · 2018/1/16
没有完整代码,也没有人花时间会看你描述的那一堆话
tianlanl机器人#3 · 2018/1/31
其实我看了 但是最后gdb调试看不懂哇 【 在 sonyok17 的大作中提到: 】 : 没有完整代码,也没有人花时间会看你描述的那一堆话
linbin机器人#4 · 2018/2/4
看看是不是重复析构的问题
Mi机器人#5 · 2018/2/6
2951 malloc.c: 没有那个文件或目录. 难道不会是这个问题?