Valgrind解决 malloc assert failed 3096
来源:互联网 发布:软件测试工具下载 编辑:程序博客网 时间:2024/05/24 05:41
malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed
使用的平台是ubuntu 10.04 gcc 4.4.3 编译选项没有开优化(gcc在开优化后做了挺多事情的) -O0
脑中觉得无解之后只好寻求网上大神指导,在stackoverflow中发现了一个神奇的工具:Valgrind。这是一个 Linux下的开源仿真调试工具集合体。具体原理可以百度一下,这里我说一下简单的安装和使用以及如何找到找到问题并解决的。
我从官网 http://valgrind.org/ 上下载了至今最新的版本 3.10.1,解压后进入Valgrind根目录查看README文件进行configure, make , make install常规安装。第一步就算是完成了,运行Valgrind --tool=memcheck 文件路径 命令后得到如下结果:
从Valgrind反馈的信息来看就是就是写内存越界的问题导致的,果然,按照这个方向检查程序发现了一个细微的地方导致内存写入长度有误。不得不感叹工欲善其事,必先利其器啊。
内存检查只是Valgrind工具的一个基本功能点,其余的强大功能等以后用得着了再放在博客上...
- Valgrind解决 malloc assert failed 3096
- malloc assert!
- 解决debug时AfxGetInstanceHandle()报debug Assert Failed错误
- assert failed appcore.cpp
- Cocos2d: Assert failed: reference count should greater than 0 错误的解决
- eVC assert failed调试方法
- VS2010 Debug Assert Failed 备忘
- 面试总结(malloc、虚继承、assert)
- 【git/内源开发】fatal: Out of memory, malloc failed问题的解决
- 用memusage+valgrind发现程序中频繁malloc的代码
- Debug assertion failed! ASSERT(FALSE) VC
- Assert failed: CCNode#rotation. RotationX != RotationY.
- Valgrind
- valgrind
- valgrind
- Valgrind
- valgrind
- Valgrind
- Android Activity向右滑动返回
- iOS上Sqlite多线程问题
- shell学习四十六天----文件系统的空间信息df和du命令
- js 获取两个标准时间差
- 二分查找
- Valgrind解决 malloc assert failed 3096
- Struts2之数据标签(二)
- Android Studio系列教程三--快捷键
- access(C语言函数名)
- 手机号码正则判断
- 黑马程序员-oc基础-NSFileManage对文件的操作
- hdu4081 次小生成树变形
- MySQL集群硬件,软件,网络要求
- LeetCode——Longest Consecutive Sequence