背景
收到反馈多次功能测试后程序功能失效。
打开调试,测试了几次出现如下错误
[2]+ Bus error ./AppXXX
找BUG
有点莫名其妙,自己程序没有输出任何错误,直接bus error退了。
-
错误输出不是自己的打印格式,以防万一还是遍历了代码和所有库文件,未找到bus error!
-
百度搜索Bus error
搜到如下信息:bus error的解决方法
简单看了一些,就是数据对齐问题引起的bus error; -
查看新增模块的结构体定义
看了一下,结构体设计都有数据对齐。这里没找到问题,接下来看下内存操作的地方! -
memcpy检查
模块全局搜索,有6处memcpy,定睛一看,第一个就有问题。
错误像这样!
int c = 0;
char a = 0, b = 0;
memcpy(&a, &b, sizeof(c));
不知道是老眼昏花呢,还是帕金森手抖了,1字节内存拷贝长度sizeof()了一个4字节的变量!!!
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处!
更多精彩内容,欢迎访问一只海星的主页