新入职的员工往往会遇到的第一个项目是解决一个已有项目的bug,C/C++的BUG常常是由C和C++的细节程序员掌握不到位,或者处理不到位造成的,最常见的错误就是内存相关的错误,对于新手而言,去单纯的review代码无异于大海捞针,一脸茫然。
现在给大家介绍一种调试内存BUG的方式——valgrind。
valgrind官网:
http://www.valgrind.org/
安装:
1.原码安装
wget http://www.valgrind.org/downloads/valgrind-3.10.1.tar.bz2
tar jxvf valgrind-3.10.1.tar.bz2
cd valgrind-3.10.1
./configure
make
make install
2.ubuntu下直接apt-get安装
sudo apt-get install valgrind
官网介绍简单翻译过来
Valgrind包括如下一些工具:
(1) Memcheck ,这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。这也是本文将重点介绍的部分。
(2) Callgrind ,它主要用来检查程序中函数调用过程中出现的问题。
(3) Cachegrind ,它主要用来检查程序中缓存使用出现的问题。
(4) Helgrind ,它主要用来检查多线程程序中出现的竞争问题。