栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C: free(): 无效指针中止(核心转储)的思考

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C: free(): 无效指针中止(核心转储)的思考

目录

使用valgrind筛查错误

部分错误出现及其解决方法

在运行程序的时候,报错(如图):

free(): invalid pointer Aborted

使用valgrind筛查错误

valgrind使用方法及其命令在另一篇博客:http://t.csdn.cn/tAsfN

读取到以下信息:

 

部分错误出现及其解决方法

参考自 http://t.csdn.cn/iQvuu

 Use of uninitialised value of size 4
//使用了未初始化的的地址, 这时候应该查看一下程序是否使用了未初始化的指针
 Address 0x0 is not stack’d, malloc’d or (recently) free’d
//这个错误原因是往错误的地址写入值, 这时候我们也应该查看一下程序用未初始化的指针赋值, 或者指针未被赋值.
 Conditional jump or move depends on uninitialised value(s)
//这个错误原因是使用的变量未被初始化
Invalid free() / delete / delete[] / realloc()
//这个错误原因是free掉了不属于自己的空间, 错误原因有可能是指针指向的内存不再属于它了
 HEAP SUMMARY:
in use at exit: 412 bytes in 1 blocks
total heap usage: 2 allocs, 1 frees, 924 bytes allocated
//最后一个是堆内存分析, 如上面的提示所示, 程序在退出时, 仍有412字节的空间未被free

 但是我的程序中并没有使用malloc分配内存,那么我接着筛查错误原因:

可能是缺少libtcmalloc-minimal4库

sudo apt-get install libtcmalloc-minimal4
//安装
vim ~/.bashrc
//修改配置文件
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"
//在配置文件里添加库路径
source ~/.bashrc
//执行配置文件

查看文件路径:ldconfig -p |grep libtcmalloc_minimal.so.4 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号