首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使FastMM文件设置正确,也不会显示泄漏

即使FastMM文件设置正确,也不会显示泄漏
EN

Stack Overflow用户
提问于 2022-08-18 18:49:36
回答 2查看 153关注 0票数 0

一项老工程落在我手里。它有130000行非常糟糕的代码(没有尝试/最后吞没了所有异常,有数千个全局变量)。我预计会有成千上万的内存泄漏。但是,FastMM4在关机时没有显示任何信息。没有消息框,没有txt日志文件。

对于所有其他项目,我使用相同的FastMM设置(inc),它可以工作。因此,我并不是说FastMM (或它的设置)被破坏了。我觉得处理不了这么多的泄密。我的一个朋友告诉我,在一个也有很多漏洞的大型项目上,需要5-10分钟才能生成txt日志。

核查:

  • FastMM在DPR的第一行上声明。
  • 我手动创建了一行代码以生成泄漏。
  • 定义了EnableMemoryLeakReporting (参见下面的清单)
  • 我处于调试模式(映射文件生成设置为“详细”)

有什么关于如何获取日志的建议吗?

代码语言:javascript
复制
{$define UseCustomFixedSizeMoveRoutines}
{$define UseCustomVariableSizeMoveRoutines}
{$define NoDebugInfo}
{$define ASMVersion}
{$define CheckHeapForCorruption}
{$define DetectMMOperationsAfterUninstall}
{$define FullDebugMode}

  {$define RawStackTraces}
  {$define LogErrorsToFile}
  {$define LogMemoryLeakDetailToFile}
  {$define ClearLogFileOnStartup}
  {$define LoadDebugDLLDynamically}
  {$define AlwaysAllocateTopDown}
  {$define SuppressFreeMemErrorsInsideException}

{$define EnableMemoryLeakReporting}
  {$define HideExpectedLeaksRegisteredByPointer}
  {$define RequireDebuggerPresenceForLeakReporting}
  {$define EnableMemoryLeakReportingUsesQualifiedClassName}
{$define EnableMMX}
  {$define ForceMMX}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-23 06:17:34

我找到了原因:编写代码的人使用KillTask来终止程序(后面是Application.Terminate)。

我删除了密码。现在,FastMM生成日志文件,它是12 is!我得把它们修好。我真幸运!

个人想法:当我得到解决方案时,我很难过,我想也许这不应该是StackOverflow的帖子。再想一想,这很好。我们今天学到了一些东西:如何而不是编写程序:)

此外,我们还了解到,有无数神奇的方式,一个疯狂的程序员可以打破一个程序,我们将花费数天来了解我们的疯狂方式。

(用我的语言来说,我们有句谚语:“当一个疯子把石头扔进湖里时,10个聪明的人找不到它”,这意味着做一些愚蠢的事情很容易,但很难修复。)

票数 0
EN

Stack Overflow用户

发布于 2022-08-18 19:13:21

我不明白你说的是哪些设置和ini文件。FastMM4选项由编译器条件( IIRC )驱动。

默认情况下不跟踪内存泄漏。

您需要在显式启用EnableMemoryLeakReporting条件下编译项目。

也可能是LogMemoryLeakDetailToFileFullDebugMode条件词。在可执行文件夹中使用FastMM_FullDebugMode.dllFastMM_FullDebugMode64.dll库,这取决于目标平台。

并在项目选项中将“映射文件生成”级别启用为“详细”,如果您想要堆栈跟踪的行号的话。

参见这篇文章和其他类似的参考资料。

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

https://stackoverflow.com/questions/73408092

复制
相关文章

相似问题

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