1,使用valgrind工具
如果要使用图形化的界面,要安装QT,工具名字是valkyrie
通过top命令,/proc/meminfo看总内存,看每个进程使用的内存
在 Linux 平台可以用 ps 命令,来监视内存的使用,比如下面的命令 (观测指定进程的VSZ值):ps -aux VSZ 该进程使用掉的虚拟内存量(KB)
ps命令:点击打开链接
常见内存错误的类型
代码段,是只读数据,如果试图对这一区域进行写,那么会发生内存错误
数据段/BSS段:未初始化直接访问,即使没有初始化,任然会初始化为0
栈空间数据:
局部变量,未初始化的时候值是随机的。
栈溢出:在栈中申请过大的局部变量
堆空间数据:
内存泄露:(1)申请为释放 (2)申请后双重释放
对于所有的地址空间
(1)野指针,去访问未初始化指针所指向的数据
(2)对数据等越界访问
(3)非法越权访问,如试图对mmap()的只读空间去写
(4)去访问不在控制范围内的地址空间
2,Linux 内核内存检测工具