Linux中bug的解决方法
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,Linux中bug的解决方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。最近调试过程中遇到了一个问题,现象是在没有GPS信号的情况
千家信息网最后更新 2025年02月01日Linux中bug的解决方法最近调试过程中遇到了一个问题,现象是在没有GPS信号的情况下,程序每次跑几分钟后就会出现以下错误提示信息,导致程序中断退出: Aborted (core dumped) 此问题折腾了我大概两小时,在此做个总结。 刚开始我检查代码,是否有double free 的地方,发现并没有。后来,我在代码里加了malloc是否成功的判断以及free后指针赋NULL的语句,依然是同样的问题。 再后来我把log打开看,看的过程中突然发现一个现象,就是每次程序挂掉时,串口读到的数据长度都是450字节,再仔细看,其实是读了两串数据,即两条GNRMC及其他语句。 buff len:450;$GNRMC,,V,,,,,,,,,,N*4D $GNVTG,,,,,,,,,N*2E $GNGGA,,,,,,0,00,99.99,,,,,,*56 $GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E $GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E $GPGSV,1,1,00*79 $GLGSV,1,1,00*65 $GNGLL,,,,,,V,N*7A $GNRMC,,V,,,,,,,,,,N*4D $GNVTG,,,,,,,,,N*2E $GNGGA,,,,,,0,00,99.99,,,,,,*56 $GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E $GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E $GPGSV,1,1,00*79 $GLGSV,1,1,00*65 $GNGLL,,,,,,V,N*7A double free or corruption (out) buff len:225;$GNRMC,,V,,,,,,,,,,N*4D $GNVTG,,,,,,,,,N*2E $GNGGA,,,,,,0,00,99.99,,,,,,*56 $GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E $GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E $GPGSV,1,1,00*79 $GLGSV,1,1,00*65 有了这个线索就好找问题了, 问题出在下面这个函数malloc分配空间时那个多加的数字100上, 这个100本意是用来将,,替换成,@,时用的,对于上面那种特殊状态,总共有114个连续,,,所以空间分配不足,导致出现问题。 解决方法也很简单,只要把100加大些就可以。 这个问题,带给我以下几点启发: 1)malloc分配空间时大小一定要注意; 2)测试时要覆盖各种可能的情况,不能只考虑正常状态,之前我就只测了有GPS信号时的状态;
Linux中bug的解决方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
double free or corruption (out)
Aborted (core dumped)
正常情况下,读到都是如下信息,即只有一条GNRMC语句。
$GNGLL,,,,,,V,N*7A
int gps_analyse(char *buff,int buff_len,GNSS *gps_data)
{
……
char *tmpbuf;
tmpbuf = (char *)malloc(strlen(ptr)+100);
memset(tmpbuf, 0, strlen(ptr)+100);
memcpy(tmpbuf, ptr, strlen(ptr));
while (strstr(tmpbuf, ",,"))
strrpl(tmpbuf, ",,", ",@,");
……
3)测试时时间要足够长。
关于Linux中bug的解决方法问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
问题
方法
情况
状态
程序
空间
语句
分配
代码
信号
信息
数据
更多
现象
过程
帮助
测试
解答
好找
易行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库常用的保护方法
国家网络安全宣传文艺演出
团日记网络安全
哈佛的三大人文数据库
2019长春网络安全
江苏办公系统软件开发价位
魔兽网络安全任务怎么做
云服务器带宽5mbps
常用stm32软件开发模式
软件开发企业属于什么产业
公检法软件开发
数据库 in效率
手机克隆可以哪些数据库
绝地大逃杀哪个服务器不卡
5G网络安全隐患
如何使用服务器连接电脑
数据库创建存储过程输入代码
青少年网络安全目的
网络安全技术架构情况
如何利用nasa数据库
直播的服务器
江西计算机网络技术学校
合肥民生银行软件开发
阿里云文件服务器上传
成都项目软件开发价钱是多少
常用stm32软件开发模式
用于程序的数据库
云服务器解除限流
青少年网络安全目的
数据库简单er图实例