dmalloc实例测试

编译生成的dmalloc文件放到output目录下(此处只是为了测试,根据自己的情况放在哪都行,只要自己能找到就ok)

 

dmalloc实例测试

准备:

提前将test程序文件夹挂载到arm设备的tmp目录下(目的是为了将生成的crash文件保存下来)

 

(1)在设备中进入output/bin/下执行:

./dmalloc -l /tmp/dmalloc_crash_test.log -i 100 low

dmalloc实例测试

 

(2)根据输出的DMALLOC_OPENTIONS修改代码:加入如下两行

注:引用dmalloc的头文件,会在日志中显示具体的行号,精确到第几行代码;也可以不引用dmalloc头文件,log中会显示malloc的地址;

test.c如下:

dmalloc实例测试

 

(3)Makefile如下:

dmalloc实例测试

 

(4)将程序编译好,在设备中执行./test之后,会在/tmp目录下生成dmalloc_crash_test.log文件如下:

dmalloc实例测试

 

可以根据提示的代码位置test.c的14行的内存,存在堆溢出问题;

分析代码可知,是for循环写超了10个字符,踩了后面的内存导致的。

相关文章: