博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 下用 valgrind 查找内存泄漏小例子
阅读量:6419 次
发布时间:2019-06-23

本文共 1000 字,大约阅读时间需要 3 分钟。

1.安装 valgrind

  yum install valgrind

2.测试用例

main.cpp

#include 
using namespace std;struct StockInfo{ int iMarket; string sCode; StockInfo() : iMarket(0) { }};int main(){ StockInfo *pStockInfo = new StockInfo; pStockInfo->iMarket = 1; pStockInfo->sCode = "000001"; cout << "Market:" << pStockInfo->iMarket << "|" << "Code:" << pStockInfo->sCode << endl; //delete pStockInfo; return 0;}

makefile

TARGET=mainINC=LIB_PATH=LIB=CFLAGS:=-Wall -g -O0 -lrt -rdynamic -fPIC -Wl,-rpath=./ $(INC) $(LIB_PATH)CPPFLAGS:=$(CFLAGS)SRC=$(shell echo *.cpp)OBJ=$(patsubst %.cpp,%.o,$(SRC))all: $(TARGET)$(TARGET): $(OBJ)	$(CXX) $^ $(CFLAGS) $(LIB) -o $@clean:	rm -f $(OBJ)	rm -f $(TARGET)

make 编译生成可执行文件:

3.使用 valgrind 检查内存泄漏:

  valgrind --tool=memcheck --leak-check=full ./main

main.cpp第18行: 

  StockInfo *pStockInfo = new StockInfo;
new 的指针,没有释放,造成内存泄漏。
 
加上 
  delete pStockInfo;
之后就没有内存泄漏了:

 

valgrind 用法详见:

 

转载于:https://www.cnblogs.com/SZxiaochun/p/8435498.html

你可能感兴趣的文章
LBS核心技术解析
查看>>
Fible Channel over Convergence Enhanced Ethernet talk about
查看>>
讨论:今日头条适配方案使用中出现的问题
查看>>
CSS3 3D翻转动画
查看>>
要命啦!Word中快速录入大全,内含快捷键小技巧,快来一起学习!
查看>>
javascript实现音频mp3播放
查看>>
html5-离线缓存
查看>>
linux系统安装完后的常见工作
查看>>
在Linux服务器、客户端中构建密钥对验证进行远程连接
查看>>
揪出MySQL磁盘消耗迅猛的真凶
查看>>
和“C”的再遇
查看>>
一键安装kubernetes 1.13.0 集群
查看>>
RabbitMq的集群搭建
查看>>
spring boot + mybatis 同时访问多数据源
查看>>
URL中汉字转码
查看>>
[转]go正则实例
查看>>
Selector中关于顺序的注意事项
查看>>
小黑小波比.清空<div>标签内容
查看>>
Java中的ExceptionInInitializerError异常及解决方法
查看>>
Spring 注入bean时的初始化和销毁操作
查看>>