高分求助!!!c内存泄露检测问题

author author     2023-05-04     665

关键词:

我在预定义部分执行了
#define _CRTDBG_MAP_ALLOC
然后在最后运行
_CrtDumpMemoryLeaks();
但是对于malloc和calloc等产生的内存泄露能够显示文件名的行数,对于strdup产生的内存泄露不显示文件名和行数,想问问有什么方法能够确定产生内存泄露的strdup所在的位置。
这个问题我已经自己解决了,需要在每个要检测的.C文件中加入
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <malloc.h>
#include <crtdbg.h>
然后接下来又有个问题,内存泄露状态比较的时候显示如下结果
0 bytes in 0 Free Blocks.
832738 bytes in 41 Normal Blocks.
4384 bytes in 9 CRT Blocks.
0 bytes in 0 Ignore Blocks.
0 bytes in 0 Client Blocks.
Largest number used: 844649 bytes.
Total allocations: 903915 bytes.
Detected memory leaks!
我想知道Largest number used和Total allocations的含义。那几个blocks我已经查到了不用重复了。

我的回答比较靠下,不知道你能不能看到呢?

是这样的,你所给的Report是
1 free blocks
2 normal blocks
3 CRT blocks
4 ignore blocks
5 client blocks
6 maximum memory used by the program at any one time (in bytes)
7 total memory currently used by the program (in bytes)
以上内容来自MSDN,所以
Largest number used和Total allocations的含义就很明显了
也就第六和第七项标明的含义

Largest number used表示在同一时刻使用过的最大内存大小
Total allocations表示当前使用的内存大小
参考技术A 1、VC下内存泄漏检测的办法:
在main函数最后增加以下内容:
#ifdef DEBUG
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
_cexit();
_CrtDumpMemoryLeaks();
_exit(0);
#endif

2、在内存泄漏中提示分配语句所在文件及行的方法:
在可能调用分配语句的地方定义:
#ifdef _DEBUG

#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__,__LINE__)
#define new DEBUG_NEW

#endif
参考技术B 你可以对于malloc进行overload,
在malloc中,进行bufferID,Appchain等信息的输出
参考技术C 这个,我建议你用第三方的工具,推荐:

compware 公司的 dev parterner for visual c++
参考技术D strdup 是 What?

visualleakdetector内存泄露检测,该怎么处理

...来存储树的结点(也是指针)时,为了确保没问题,特别是内存的分配,我搜索并安装了VirtualLeakDetector,一个开源的内存泄漏检测工具。初识VisualLeakDetector灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程... 查看详情

c++怎么检测内存泄露,怎么定位内存泄露?

C++怎么检测内存泄露,怎么定位内存泄露?-知乎 查看详情

c++内存泄露检查工具(代码片段)

...近用到STL中的List编程,为了检测写的代码是否会发现内存泄漏,了解了一下相关的知识。所有使用动态内存分配(dynamicmemoryallocation)的程序都有机会遇上内存泄露(memoryleakage)问题,在Linux里有三种常用工具来检测内存... 查看详情

[高分求助]如何批量打印html文件~高分求助

...开打印,但是文件数量过大,寻求批量打印方法,谢谢,高分求助参考技术A1.c盘是否是NTFS格式,如果是,其格式将不被DOS识别,所以误格个别的盘。用NTFSforDOS就可以了。2.用EasyRecovery试一下。3.可以安装一键恢复精灵。4.等数据... 查看详情

内存泄露定位手段(c语言hookmalloc相关方式)(代码片段)

如何确定有内存泄露问题,如何定位到内存泄露位置,如何写一个内存泄漏检测工具?1:概述内存泄露本质:其实就是申请调用malloc/new,但是释放调用free/delete有遗漏,或者重复释放的问题。内存泄露... 查看详情

log4qt内存泄露问题,heob内存检测工具的使用

...移植版。本是挺常用的开源库,然而在使用过程中发现了内存泄露的坑。为了验证下,这里单独写了个测试demo,并使用qtcreator集成的hoeb内存泄露检测工具分析下。测试用例很简单,就是一个MainWindow界面上放置两个按钮。点下按... 查看详情

怎样发现内存泄露?

  一、内存泄漏的检查方法:  1.ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。  2.Dmalloc-DebugMallocLibrary.  3.ElectricFence-Linux分发版中由BrucePerens编写的malloc()调试库。  4.Leaky-Linux下检测内... 查看详情

leakcanary检测内存泄漏(代码片段)

内存泄漏原因:线程造成的内存泄漏Handler造成的内存泄漏单例导致内存泄露静态变量导致内存泄露非静态内部类导致内存泄露未取消注册(BroadcastReceiver)或回调导致内存泄露Timer和TimerTask导致内存泄露集合中的对象未清理造成内存... 查看详情

debugassertionfailed!是啥问题?高分求助

就是这个问题帮忙解决了再加100直观地说,就是store.cpp的第519行出错了。但并不一定是说,519行有什么语法错误,也可能根源在此之前。该警告表明程序在选定点的行为与预期行为不符合。在程序跟踪调试过程出现此警告,最常... 查看详情

android内存泄露检测工具---leakcanary的前世今生(代码片段)

...xff1a;http://blog.csdn.net/zivensonice/article/details/51639763曾经检测内存泄露的方式让我们来看看在没有LeakCanary之前,我们怎么来检测内存泄露1.Bug收集通过Bugly、友盟这样的统计平台,统计Bug,了解OutOfMemaryError的情况。2.重现... 查看详情

xcode结合leaks检测内存泄露

...三遍。虽然现在项目大多数是ARC模式,Xcode会帮我们管理内存,但并不意味着这样就不会存在内存泄露的现象。Xcode里面有一个工具Instruments,这个工具可以检测项目的性能。1.command+i开启Instruments工具Xcode结合Leaks检测内存泄露,... 查看详情

log4qt内存泄露问题,heob内存检测工具的使用(代码片段)

...版。本是挺常用的开源库,然而在使用过程中发现了内存泄露的坑。为了验证下,这里单独写了个测试demo,并使用qtcreator集成的hoeb内存泄露检测工具分析下。测试用例很简单,就是一个MainWindow界面上放置两个按... 查看详情

c++内存泄露检查工具(代码片段)

...近用到STL中的List编程,为了检测写的代码是否会发现内存泄漏,了解了一下相关的知识。所有使用动态内存分配(dynamicmemoryallocation)的程序都有机会遇上内存泄露(memoryleakage)问题 查看详情

如何在linux下检测内存泄露

参考技术Alinux可以用valgrind检测内存泄漏 查看详情

ddms工具检测内存泄露(代码片段)

DDMS工具检测内存泄露DDMS是Android开发包中自带工具,可以测试app性能,用于发现内存问题。1、环境搭建准备环境,网上随便都能找到,不再叙述了;2、工具启动虚拟机测试:确保测试环境中已经配置了Android虚拟机,cmd下输入如... 查看详情

一种穷人式的内存泄露检测方式

对于检测程序代码中的资源泄露问题,市面上已经有很多工具了,但是今天我再来介绍一种新的方式,这种方式不需要安装任何工具或者特定的编译器开关,也不需要第三方库。那就是:一直保持程序运行,直到泄露的原因自动... 查看详情

有木有人知道openwrt下有啥内存泄露检测工具

参考技术A本文浅谈一下C++内存泄漏的检测,首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。最简单的方法当然是借助于专业的检测工具,比较有名如BoundsCheck工具,功能非... 查看详情

yfmemoryleakdetector人人都能理解的ios内存泄露检测工具类

背景即使到今天,iOS应用的内存泄露检测,仍然是一个很重要的主题。我在一年前,项目中随手写过一个简单的工具类,当时的确解决了大问题。视图和控制器相关的内存泄露,几乎都不存在了。后来想着一... 查看详情