SylixOS调试与性能分析技术--内存泄漏检测
2017-11-23 15:19
309 查看
1.内存泄漏检测原理
内存泄漏是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃。SylixOS提供了内存检测方法,可以检测和跟踪内存泄漏,其原理如下:l 当开启内存泄漏检测功能时,创建一个链表;l 当执行申请内存操作时,将信息记录至链表中的一个节点;l 当执行释放内存操作时,将对应的链表节点信息删除;l 当执行打印内存泄漏跟踪消息时,打印链表中所有的节点数据。2.内存泄漏检测调试技术
SylixOS通过在系统中输入shell命令进行内存泄漏检测,其命令如下:l leakchkstart [max save node number] [pid](启动堆泄漏检查)leakchkstart命令需要提供两个参数:最大跟踪节点数(如果泄漏超过这个数就不记录)PID信息(当PID大于0时,检测指定进程PID;PID等于0时,检测内核进程;当PID小于0时,检测所有进程)l leakchkstop(停止堆泄漏检查并打印泄漏消息)l leakchk(打印内存泄漏跟踪消息)3.内存泄漏检测示例
启动内存泄漏检查,如程序清单3.1所示。程序清单3.1 启动内存泄漏检测[root@sylixos:/apps/app_demo]# leakchkstart 1024 -1 leakcheck start checking...
打印当前内存泄漏信息,如程序清单3.2所示。程序清单3.2 打印内存泄漏信息
[root@sylixos:/apps/app_demo] leakchk HEAP THREAD TIME ADDR SIZE PURPOSE ------- --------- -------- -------- ------- ----------------------
模拟内存泄漏,如程序清单3.3所示。程序清单3.3 模拟内存泄漏
#include <stdio.h> #include <stdlib.h> int main (int argc, char **argv) { int *p; p = (int*)malloc(sizeof(int) * 128); return (0); }
再次打印当前内存泄漏信息,如程序清单3.4所示。程序清单3.4 再次打印泄漏信息
[root@sylixos:/apps/app_demo]# leakchk HEAP THREAD TIME ADDR SIZE PURPOSE ------- --------- -------- -------- ------- ---------------------- 1 app_demo Sat Jan 01 09:47:56 2017 c2055008 116 mem alloc
停止内存泄漏检查并打印泄漏信息,如程序清单3.5所示。程序清单3.5 停止内存泄漏检测
[root@sylixos:/apps/app_demo]# leakchkstop HEAP THREAD TIME ADDR SIZE PURPOSE ------- --------- -------- -------- ------- ---------------------- 1 app_demo Sat Jan 01 09:47:56 2017 c2055008 116 mem alloc total unfree segment: 1 size: 116
相关文章推荐
- SylixOS调试与性能分析技术--内存泄漏检测
- Valgrind ---内存调试,内存泄漏检测以及性能分析的软件开发工具
- Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的自由软件。
- valgrind: 一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具
- Valgrind ---内存调试,内存泄漏检测以及性能分析的软件开发工具
- SylixOS调试方法详解——性能分析
- SylixOS调试方式详解——性能分析
- SylixOS调试方法详解——性能分析
- iframe 异步加载技术及性能分析
- 四项下一代入侵检测关键技术分析
- 反调试技术常用API,用来对付检测od和自动退出程序
- Android内存泄漏分析及调试
- sql server 性能分析--死锁检测数据库阻塞语句
- 一起谈.NET技术,数组排序方法的性能比较(中):Array.Sort<T> 实现分析
- 内存泄漏分析及常用内存泄漏检测工具分享
- 提升大数据数据分析性能的方法及技术(一)
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- Android内存泄漏分析及调试
- 调试检测技术
- 机器视觉检测技术发展趋势分析