core dumped 错误

2023-05-16

Aborted(core dumpde)

一般是关于内存异常:

详细解释
gdb使用
1.往受到系统保护的内存地址写数据
有些内存是内核占用的或者是其他程序正在使用,为了保证系统正常工作,所以会受到系统的保护,而不能任意访问.
或者是向一个内存地址为0的地方写入数据。
记得初始化内存地址或者使用前验证不为null
2.内存越界(数组越界,变量类型不一致等)
数组大小为100 向里存入1000的数据 会发生内存溢出的现象*(一般看下标或者核对数组大小)*
还有试图把char型或者是int的按照%s输出或存放起来。

tips
<1>定义了指针后记得初始化,在使用的时候记得判断是否为NULL
<2>在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等
<3>在变量处理的时候变量的格式控制是否合理等

调试:
只关心在ros 中调试:
1).使用printf或者ROS_INFO函数 在重要的地方进行打印 逐步锁定出错位置。
2.)生成core文件 ,使用ulimit -c unlimited 开启core记录功能,
运行ros程序 core dumpded 之后使用gdb yourpromgram core 查看core文件 yourpromgram为你的文件名字,前边需加上绝对地址 core为生成的core文件名字 一般为core 或者core.id 进入之后一般可以看到问题 输入where 可以知道具体那个函数出现问题。
(如果不知道自己的函数具体位置,可以运行gdb exe core 可以看到core was genweated by“地址+函数名称”)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

core dumped 错误 的相关文章

随机推荐