当前位置:首页 > 内存 > 正文

内存泄漏定位工具(内存泄漏怎么定位)

  • 内存
  • 2024-08-17 17:45:34
  • 2350

一、如何检测C++的内存泄漏,用哪些工具?本文简单讲一下C++内存泄漏检测首先我们要知道程序是否存在内存泄漏,然后找到哪一行代码存在内存泄漏,以便进行修复。最简单的方法当然是使用专业的检测工具,比如大名鼎鼎的BoundsCheck工具,功能非常强大,相信任何开发C++的人都离不开它。另外,您不使用任何工具,而是自己实现内存泄漏监控。有两种情况:1.如果您使用MFC程序,则在MFC中检测内存泄漏非常简单。默认情况下,有内存泄漏检测功能。我们用VS2005生成一个MFC对话框程序,发现它可以自动检测内存泄漏。#afx.h文件中定义了definenewDEBUG_NEW#endifDEBUG_NEW宏,它可以帮助我们发现内存泄漏。如果在包含上述代码的cpp文件中分配内存后没有刷新内存,则当程序停止时,VisualStudio的输出窗口将显示以下信息:Detectedmemorleaks!Dumpingobjects->d:\code\mfctest\(80):{157}normalblockat0x003AF170,:<>00000000Objectdumpcomplete,双击输出窗口中的粗线,IDE将打开该文件并发现发生了行泄漏。二。为了检测纯C++程序中的内存泄漏,我尝试了使用VisualStudio创建的Win32ConsoleApplication和Win32Project项目,但无法检测到内存泄漏。我们来一步步搭建程序的内存泄漏检测机制。首先我们应该知道,Debug版本的C函数库提供了很多检测函数,让我们更方便的调试程序。MSDN上有一个单独的章节,名为DebugRoutines,我建议您阅读该内容。我们将使用其中一些非常重要的功能。
二、Windows下有哪些内存泄露监测工具oc-Linux和Solaris下用于C和C++程序的简单内存泄漏和malloc调试库。
c-DebugMallocLibrary。
icFence-Linux发行版中由BrucePerens编写的malloc()调试库。
-Linux中检测内存泄漏的程序。
acer-跟踪和分析Linux、Solaris和HP-UX下C++程序中的内存泄漏。
CH-由JohanLinde编写,是一个主要通过pre-gcc检测C内存错误的开源工具。
nd-调试和分析Linux程序,针对用CandC++编写的程序。
grind-用于分析Cachegrind和Calltree生成的数据的工具
nitor-一个Firefox扩展可以找到与Firefox相关的泄漏类型。
Detector(Drip/IESieve)-Drip和IESieveleakDetector通过报告由于IE限制而导致的可避免的内存泄漏,帮助Web开发人员提高动态网页的性能。
sLeaksDetector-基于WinAPI调用挂钩检测任何Win32应用程序中的任何资源泄漏(内存、句柄等)。
oryAnalyzer-是一款开源的JAVA内存分析软件,可以用来帮助查找JAVA程序中的内存泄漏,它可以轻松找到大块内存并检查谁占用了它们EclipseRCP(RichClientPlatform)可以下载RCP的独立版本或Eclipse插件。
-DynamicTrace,是一款开源软件,可以运行在类Unix平台上,用户可以动态检测操作系统内核和用户进程,以更准确地了解系统资源使用情况,提高系统性能,少支持成本,并实现有效的调整。
ionalPurifyPlus-帮助开发人员识别托管C/C++、.NET、Java和VB6代码中的性能和可靠性错误。PurifyPlus将内存错误和泄漏检测、应用程序性能分析、代码覆盖率分析等整合到一个完整的工具集中。
ftInsure++-C/C++应用程序的自动运行时错误检测工具,它可以自动监控C/C++程序并发现内存损坏、内存泄漏、指针错误和I/O等错误。使用一系列独特的技术(SCI技术、突变测试等),我们仔细检查和测试我们的代码,以确定故障的确切位置并给出详细的诊断信息。它可以作为MicrosoftVisualC++的插件运行。
areDevPartnerforVisualC++BoundsCheckerSuite-专为C++开发人员设计的运行错误检测和调试工具。它作为MicrosoftVisualStudio和C++6.0的插件运行。
icSoftwareGlowCode-包括内存泄漏检查、代码分析、函数调用跟踪等功能。为C++和.Net开发人员提供完整的错误诊断和运行时性能分析工具包。
areDevPartnerJavaEdition-包含Java内存发现、代码覆盖率测试、代码性能测试、线程停止、分布式应用等众多功能模块。
Probe-Java内存泄漏分析。
-technologiesJProfiler-一个全功能的Java分析工具,专用于分析J2SE和J2EE应用程序。它将CPU、线程和内存配置文件结合到一个强大的应用程序中。JProfiler为IDE集成和应用程序服务器集成提供了多种用途。JProfiler直观的GUI允许您查找性能瓶颈、捕获内存泄漏并解决线程问题。4.3.2注册码:A-G666#76114F-1olm9mv1i5uuly#0126
ckit-用于诊断Java内存泄漏并指出根本原因,专门针对Intel平台进行了优化,可以在Intel上获得最高性能硬件性能。
oryProfiler-查找内存泄漏并优化它们