当前位置: 首页 > news >正文

转: CRT检测内存泄漏技巧以及注意问题

用CRT检测内存泄漏的技巧:
(1)使用以下宏来对某CPP文件的内存泄漏进行检测。
VC2005:
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

VC6
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
(2)使用_CrtSetBreakAlloc来找到“
c:\program files\microsoft visual studio 8\vc\include\crtdbg.h”
     的调用者。

用CRT检测内存泄漏注意的问题:
(1)注意STL的问题。
     STL没法检测到是STL哪一文件出错,它默认提示文件是“
c:\program files\microsoft visual studio 8\vc\include\crtdbg.h”。可能问题出在于全局变量没有被释放掉。
(2)一旦出现“
c:\program files\microsoft visual studio 8\vc\include\crtdbg.h”的提示,却始终没法找到是哪一文件引起new的调用,此时可以尝试用其他的工具查找内存泄漏问题,利用其它工具提示的信息找到始作俑者。
(3)注意头文件里的new,它会被你的粗心忽略掉。
(4)导致“
c:\program files\microsoft visual studio 8\vc\include\crtdbg.h”的一些第三方程序。
     包括:STL。
           别人编写的使用new的库,申请的内存没有被释放。
(5)strcore.cpp(141)的错误,是CString内存泄漏导致。
     可能的原因:GetBuffer未ReleaseBuffer。

相关文章:

  • RIP协议拓扑结构变化-收敛
  • Redhat 下不重启系统发现LUN
  • asp.net导出数据到EXCEL简单有效
  • RedHat 6.0环境下Oracle 8.0.5的安装
  • Windows 7下用无线网卡自建热点共享Internet访问
  • Oracle发布更新使数据库性能优化达到75%
  • tip
  • 关于MySQL备份还原的几种方案
  • DLL导入
  • 机械版CG 附加实验1 中点画线算法
  • N多JPG图片如何转换成PDF文档
  • PHP反射的一些特性
  • 思维导图培训六:思维导图的用途
  • dedecms模版制作使用方法
  • [CCIE历程]CCIE # 20604
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • ERLANG 网工修炼笔记 ---- UDP
  • JDK 6和JDK 7中的substring()方法
  • JS专题之继承
  • PV统计优化设计
  • React Transition Group -- Transition 组件
  • React组件设计模式(一)
  • 工作手记之html2canvas使用概述
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 我从编程教室毕业
  • 小程序开发之路(一)
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​ssh免密码登录设置及问题总结
  • ​决定德拉瓦州地区版图的关键历史事件
  • # Panda3d 碰撞检测系统介绍
  • #include
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (007)XHTML文档之标题——h1~h6
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)丶RabbitMQ的六大核心
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十) 初识 Docker file
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net打印*三角形
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • @requestBody写与不写的情况
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [.NET]桃源网络硬盘 v7.4
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [C++]拼图游戏
  • [CLickhouse] 学习小计
  • [Docker]十二.Docker consul集群搭建、微服务部署,Consul集群+Swarm集群部署微服务实战
  • [FROM COM张]如何解决Nios II SBTE中出现的undefined reference to `xxx'警告
  • [github配置] 远程访问仓库以及问题解决