首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测Linux/MacOs平台中的内存泄漏?

如何检测Linux/MacOs平台中的内存泄漏?
EN

Stack Overflow用户
提问于 2018-03-22 22:34:30
回答 1查看 2.5K关注 0票数 1

我准备了头文件"heap_monitor.h“。这个头文件的工作原理是,如果我把它包含在其他的头文件中,它会检查这个头文件和cpp文件中的内存泄漏。当我忘记删除析构函数中的对象时,它们会留在堆中,而这个监视器会给我发送错误,这是我知道在堆中不删除内存的地方。

代码语言:javascript
复制
#pragma once
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

#define new new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )

#define initHeapMonitor() _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF)

这个版本的代码包括crtdbg.h,它是Windows库。在Xcode中,我不使用此错误编译代码:

错误:未找到 'crtdbg.h‘文件

我必须编写一些其他的代码来检查这个内存泄漏,或者一些东西来修复程序来编译我的工作。

当我删除crtdbg.hx代码时,在new.cpp:https://prnt.sc/iv1x7d中向我发送20个错误

我是怎么解决这个问题的?

EN

回答 1

Stack Overflow用户

发布于 2018-03-22 23:17:29

据我所知,搜索内存泄漏的最佳方法是使用一个名为Val差尔的工具,只需使用memcheck命令即可。您可以在这里看到详细信息:http://valgrind.org/docs/manual/mc-manual.html for macOS,您可以看到线程Valgrind on macOS Sierra

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49439528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档