【解决】double free or corruption (!prev)

来源:清泛原创     2021-08-06 16:14:07    人气:     我有话说( 0 人参与)

*** glibc detected *** cupd: double free or corruption (!prev): 0x093b1208 ***可能原因:1、多次释放同一内存区,需要检查代码,是否出现了对同一内存区释放两

*** glibc detected *** ./cupd: double free or corruption (!prev): 0x093b1208 ***
可能原因:
1、多次释放同一内存区,需要检查代码,是否出现了对同一内存区释放两次以上的地方。
2、内存区溢出,malloc申请的内存区大小有限,如果操作不当,存储的数据大于内存区大小,在free的时候也会检测出来,报这个错误,如:
char* buf = malloc(5);
memcpy(buf, "123456", 6);
free(buf);  //free时报此错误
实际项目中可能此类问题没法直观定位到,推荐使用gcc自带的 asan 检查内存错误。

asan 内存跟踪

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: