Linux代码调试

Linux代码调试

一、检查内存泄漏

1.Valgrind

Valgrind
Valgrind是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具
原理:Valgrind 直接解释二进制代码使得应用程序基于它运行
Valgrind直接与现有可执行文件一起使用, 无需重新编译。若想看到对应行数,则在gcc/g++编译时 加上 ‘-g’
(1)ubuntu下安装
apt-get install valgrind
(2)代码实例调试

#include <stdio.h>
#include <stdlib.h>
void fun(void)
{
    int *p = (int*)malloc(10*sizeof(int));
    p[10] = 0; // 堆块溢出
}// 内存泄漏,x没释放

int main(int argc, char **argv) 
{
	fun() ;
	return 0 ;
}

编译:
加 ‘-g’ 就能看到行数,不加也能跑,只是没有对应行数
#gcc -g test1.cc -o test1.out
运行:
#valgrind --leak-check=full ./test1.out
Memcheck 工具是默认设置,可以不用加tool直接使用

二、调试代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值