内存检查工具

简介: <div> <p style="orphans:2; widows:2; border:0px; font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:15px; margin-top:0px; margin-bottom:1.625em; outline:0px; padding-top:0px; padd

内存检测工具主要用于检测程序的堆栈错误。一般的检测方法是通过加magic number来表示正确的内存信息。如果magic number被写坏,那么就表示内存错乱了。

1编译选项:

-fstack-protector & -fstack-protector-all

-fstack-protector

在函数的stack上加一个magic number,如果buffer overflows的话,程序直接退出。

函数开始时加入,退出时检测。

*** stack smashing detected ***: ./test terminated

2环境变量

MALLOC_CHECK_检测堆错误。

若将MALLOC_CHECK_设置为0,则在检查到错误时不作任何提示。

若将MALLOC_CHECK_设置为1,则在检查到错误时打印一条信息到标准错误输出。

若将MALLOC_CHECK_设置为2,则在检查到错误时直接调用abort()中止程序。

3 lib :mcheck

在编译时链接 –lmcheck, 会起到和上诉边境变量相同的效果,不过,mcheck这个lib是线程不安全的。

如果出错,程序直接退出,并打印出:memory clobbered before allocated block

3: mudflap

http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging

使用方法:

1:添加编译选项:-fmudflap

2:添加lib: -lmudflap

3:环境变量export MUDFLAP_OPTIONS=’<options>

检查非常严格,任何读写越界都会报错。’

4:mtrace:用于查看内存泄露

使用方法:

1.设置环境变量 MALLOC_TRACE指定程序输出log文件

2.包含mcheck.h文件

3.程序开始时调用 mtrace()

4.运行程序

5.使用mtrace查看log文件

5:dmalloc

需要安装http://dmalloc.com/releases/dmalloc-5.5.2.tgz

使用方法:

1:设置环境变量:

在terminal输入export DMALLOC_OPTIONS=log=logfile, debug=0×3(in Bash)/export

2:在源文件中添加下面的C代码:

#include “dmalloc.h”

值得注意的是:要在每一个.C文件里面添加,而且必须添加在所包含的头文件最后一行!

3编译选项:-DDMALLOC -DDMALLOC_FUNC_CHECK

4:lib:-ldmalloc

6 memwatch:

用于检测内存泄露

memwatch不需要安装,只要下载包解压即可,有用的文件只有memwatch.c&memwatch.h,把这两个文件放入要检测的程序的文件夹中即可。编译的命令为:gcc -DMEMWATCH -DMW_STDIO test.c memwatch.c -o test

7:valgrind:

这个资料比较多。

目录
相关文章
|
11月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
2103 6
|
4月前
|
存储 Ubuntu Linux
内存卡格式化必看!4个格式化工具与注意事项
今天就给大家推荐几款经过实测的内存卡格式化工具,它们不仅使用简单、支持多种格式,而且在修复损坏卡方面也表现稳定,是实用性与安全性兼具的好帮手。
|
11月前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
336 62
|
11月前
|
缓存 Linux
如何检查 Linux 内存使用量是否耗尽?
何检查 Linux 内存使用量是否耗尽?
400 58
|
11月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
1238 9
|
12月前
|
存储 监控 算法
JVM调优深度剖析:内存模型、垃圾收集、工具与实战
【10月更文挑战第9天】在Java开发领域,Java虚拟机(JVM)的性能调优是构建高性能、高并发系统不可或缺的一部分。作为一名资深架构师,深入理解JVM的内存模型、垃圾收集机制、调优工具及其实现原理,对于提升系统的整体性能和稳定性至关重要。本文将深入探讨这些内容,并提供针对单机几十万并发系统的JVM调优策略和Java代码示例。
193 2
|
NoSQL Java 测试技术
Golang内存分析工具gctrace和pprof实战
文章详细介绍了Golang的两个内存分析工具gctrace和pprof的使用方法,通过实例分析展示了如何通过gctrace跟踪GC的不同阶段耗时与内存量对比,以及如何使用pprof进行内存分析和调优。
362 0
Golang内存分析工具gctrace和pprof实战
|
监控 Java 开发者
Java面试题:如何使用JVM工具(如jconsole, jstack, jmap)来分析内存使用情况?
Java面试题:如何使用JVM工具(如jconsole, jstack, jmap)来分析内存使用情况?
637 2
|
缓存 Ubuntu Linux
在Linux中,如何检查系统的CPU和内存使用情况?
在Linux中,如何检查系统的CPU和内存使用情况?
|
监控 Java
JAVA性能优化- IntelliJ插件:java内存分析工具(JProfiler)
JAVA性能优化- IntelliJ插件:java内存分析工具(JProfiler)
381 0