您的位置:首页 > 其它

[Debug]内存问题的一些调试方法

2014-03-08 14:16 183 查看
1,使用valgrind工具

valgrind使用介绍

valgrind官网

如果要使用图形化的界面,要安装QT,工具名字是valkyrie

通过top命令,/proc/meminfo看总内存,看每个进程使用的内存

在 Linux 平台可以用 ps 命令,来监视内存的使用,比如下面的命令 (观测指定进程的VSZ值):ps -aux VSZ 该进程使用掉的虚拟内存量(KB)

ps命令:点击打开链接

C++内存泄露调试方法~

常见内存错误的类型

代码段,是只读数据,如果试图对这一区域进行写,那么会发生内存错误

数据段/BSS段:未初始化直接访问,即使没有初始化,任然会初始化为0

栈空间数据:

局部变量,未初始化的时候值是随机的。

栈溢出:在栈中申请过大的局部变量

堆空间数据:

内存泄露:(1)申请为释放 (2)申请后双重释放

对于所有的地址空间

(1)野指针,去访问未初始化指针所指向的数据

(2)对数据等越界访问

(3)非法越权访问,如试图对mmap()的只读空间去写

(4)去访问不在控制范围内的地址空间

2,Linux 内核内存检测工具

http://www.ibm.com/developerworks/cn/linux/l-cn-kmemcheck/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: