话说“工欲善其事,必先得其器”,用C语言写程序,最怕遇到个什么内存泄漏,内存越界访问了,心里那个急啊。。。 如果在i368-linlux上,valgrind工具是首选,但在arm-linux平台上,如何呢,dmalloc就是一个不错的选择。当然,IBM的purify是另外一个级别的选手,不提也罢。 ...
分类:
系统相关 时间:
2016-05-13 09:18:06
阅读次数:
279
valgrind支持的工具:memcheck addrcheck cachegrind Massid helgrind Callgrind
运行时必须指明想用的工具,如果省略工具名,默认运行memcheck
1,memcheck
1),使用未初始化的内存
2),读/写已经被释放的内存
3),读/写内存越界
4),读/写不恰当的内存栈空间
5),内存泄露,指向一块内存的指针永远...
分类:
其他好文 时间:
2016-05-13 02:11:25
阅读次数:
204
话说“工欲善其事,必先得其器”,用C语言写程序,最怕遇到个什么内存泄漏,内存越界访问了,心里那个急啊。。。 如果在i368-linlux上,valgrind工具是首选,但在arm-linux平台上,如何呢,dmalloc就是一个不错的选择。当然,IBM的purify是另外一个级别的选手,不提也罢。 ...
分类:
系统相关 时间:
2016-04-18 20:45:59
阅读次数:
228
白盒测试,是一种透明化的测试,程序的内部结构是可视的,是对用例的测试。 白盒测试测试方式有语句覆盖,判断覆盖,条件覆盖,还有判定条件覆盖,条件组合覆盖 白盒测试能发现一系列问题,如逻辑问题,边界条件,变量未初始化,内存越界等一系列问题 如果产品更多的具备软件平台特性,白盒测试应占总测试的80%以上, ...
分类:
其他好文 时间:
2016-04-05 22:52:03
阅读次数:
231
近期使用vs2010编程出现下面问题。在网上收集了大家的意见之后,整理了一下 导致出现这种原因有: 1.非法指针訪问和内存泄漏 2.大家再查查吧。一定是指针出现故障了。设置的指针范围跟你执行的不正确 3.指针訪问内存越界出现故障。 4.是由于不支持中文。 5.内存不够分配 6.当时后来检查发现的问题
分类:
其他好文 时间:
2016-03-06 12:42:59
阅读次数:
174
函数形式为: int atoi(const char *nptr); 函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。所以在使用时一不小心会造成内存越界,如以下代码:#....
分类:
其他好文 时间:
2016-01-11 18:24:31
阅读次数:
157
Ring buffer算法优点:高内存使用率,在缓冲buffer内存模型中,不太容易发生内存越界、悬空指针等 bug ,出了问题也容易在内存级别分析调试。做出来的系统容易保持健壮。 package?main
import?(
"bytes"
"fm...
分类:
其他好文 时间:
2015-10-20 22:54:32
阅读次数:
520
1、fgets比gets安全!为了安全,gets少用,因为其没有指定输入字符的大小,限制输入缓冲区得大小,如果输入的字符大于定义的数组长度,会发生内存越界,堆栈溢出。后果非常严重!fgets会指定大小,如果超出数组大小,会自动根据定义数组的长度截断。2、用strlen检测两者的输入的字符串长度,结果...
分类:
其他好文 时间:
2015-09-01 01:25:27
阅读次数:
210
当我们在用C++做底层驱动的时候,经常会遇到内存不足的警告,究其原因,往往是因为内存出现溢出,泄露或者越界等原因。那么他们之间有什么联系吗?
内存溢出(out of memory)
是指程序在申请内存时,没有足够的内存空间供其使用。
内存泄漏(memory leak)
是指程序在申请内存后,无法释放已申请的内存空间,占用有用内存。
注:内存泄漏最终会导致内存溢出
简单理解,内...
分类:
编程语言 时间:
2015-08-20 15:21:29
阅读次数:
151
新公司,维护一个旧代码:一个内存越界问题:c = *(sText+nLeng+1); // 读随便你*(sText+nLeng+1) = 0; // 越界两个字符,写坏内存这会导致, 在无压力正常情况下运行不报错, 不core dump。 在大压力测试的时候(fork架构) , 某几个进程会报错ma...
分类:
编程语言 时间:
2015-05-26 12:21:26
阅读次数:
153