代码检查工具文档.docx

代码检查工具 一.内存泄漏的发生方式 1).常发性 2).偶发性 3).一次性 .隐式 二.代码检查的方式 代码检查的方式分为静态代码检查(Static program analysis)和动态代码检查(Dynamic program analysis)。 三.动态代码检查——Valgrind简单用法 1).valgrind包含的工具 ①.memcheck最常用的工具,也是valgrind默认的工具。用来检测程序中出现的内存问题,所有对内存的读写都会被检测到。一切对malloc()/free() 、new/delete的调用都会被捕获,所以它能检测以下问题: 对未初始化内存的使用 读/写释放后的内存块 读/写超出malloc分配的内存块 读/写不适当的栈中内存块 内存泄漏,指向一块内存的指针永远丢失 不正确的malloc/free或new/delete匹配 Memcpy()相关函数中的dst和src指针重叠。 ②.callgrind,它不需要在编译源码时附加特殊选项,但推荐加上调试选项,callgrind搜集程序运行时的一些数据,建立函数调用关系图,还可以有选择的进行cache模拟,在运行结束时,它会把分析数据写入一个文件。简而言之,它主要用来检查程序中函数调用过程中出现的问题。 ③.cachegrind,它模拟CPU中的一级缓存和二级缓存,能够精确的指出程序中cache的丢失和

文档评论(0)

1亿VIP精品文档

相关文档