- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 FastMM 版本 4.99(根据 FastMM4.pas
顶部的注释)。我有followed the instructions使用带有堆栈跟踪的完整 Debug模式,并且当我在 IDE 调试器下运行 .exe 时发现泄漏。 例如
但是当我尝试从命令提示符运行可执行文件或在 Windows 资源管理器中双击时,我没有收到任何泄漏报告。 UnicodeString 泄漏可能是假的,但我确信 TIniFile 泄漏是真实的。不使用调试器时如何使 FastMM 报告/日志泄漏?
更新:该项目还使用 madExcept 3.0n:.dpr 文件确实将 FastMM4 作为其 use 子句中的第一项。还需要什么才能使这两者共存吗?
最佳答案
您尚未正确配置FastMM4Options.inc
。从 4.97 版本发布的文件来看,它位于第 405 行左右:
{Set this option to require the presence of the Delphi IDE to report memory
leaks. This option has no effect if the option "EnableMemoryLeakReporting"
is not also set.}
{.$define RequireIDEPresenceForLeakReporting}
确保 .
位于最后一行($define
之前)并重建您的项目。
@wades 发现在我提到的那个设置的正下方还有另一个设置,RequireDebuggerPresenceForLeakReporting
,它默认处于打开状态。通过在左大括号后添加句点来禁用它:
{Set this option to require the program to be run inside the IDE debugger to
report memory leaks. This option has no effect if the option
"EnableMemoryLeakReporting" is not also set.}
{$define RequireDebuggerPresenceForLeakReporting}
(根据@wades的请求添加到此答案。)
关于delphi - FastMM/DXE2 仅在使用调试器时报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440959/
当我从 IDE 运行它时,我的应用程序在退出时报告此错误。对于程序运行时创建的每个线程实例,我通常会得到一个 FastMM 障碍,但它的可重复性不足以表征这种行为。问题是我无法理解这份报告。 ----
最近有人建议 ( My program never releases the memory back. Why? ) 我的程序泄漏了一些内存。我将 FastMM 设置为激进,当我关闭程序时它报告没有内
我有一个复杂的应用程序,在正常编译时可以按预期工作,但是在使用 FastMM 4.97(最新)编译时关闭表单会产生访问冲突。当消息调度尝试处理针对已被销毁的表单上的按钮的消息时,就会发生 AV。我还为
如何获取 FastMM 分配的内存总量? 我已经尝试过了: function GetTotalAllocatedMemory: Cardinal; var MMState: TMemoryMana
我在 Delphi5 中的应用程序中使用 FastMM 4.97。 如果我从 IDE 运行我的应用程序并出于测试目的故意泄漏,则一切正常。我得到了适当的通知和错误日志。 但是,如果我在 IDE 之外运
FastMM 报告以下使用带有字符串的记录线程变量的代码片段存在内存泄漏 (UnicodeString): program Project10; {$APPTYPE CONSOLE} {$R *.re
我正在寻找一些内存泄漏,并在 FullDebugMode 中使用 FastMM 来获取事件日志。这工作得很好,但是堆栈跟踪......一点也不太好。 一个简短的例子: This block was a
FastMM 会使您的可执行文件更大吗?我注意到我的应用程序增长了大约 300-500kb,这对我来说相当大了。我已经关闭了delphi编译器选项以排除调试信息,但大小没有改变。 我使用FastMM的
我通过svn结帐下载了FastMM。 (而不是稳定的打包版本) 我可以在发行版本中使用它(或安全使用)吗? 我是作为Rob Kennedy建议的单独问题来询问的。 最佳答案 您可以确定,但是要由您确定
我有一个主机应用程序,它在启动时加载了十几个库。我想从 Delphi 7s 默认内存管理器切换到 FastMM4 的完整版本以获得更好的内存泄漏报告。 我应该在主机应用程序和库的使用部分包含 Fast
我有一个想法,可以在夜间自动构建中启用 FastMMs memleakreporting。消息框当然应该被禁用。最简单的可能是如果存在内存泄漏,应用程序退出代码 > 0。我做了一个快速测试,使用 me
我正在使用 FastMM 调试我的程序,它报告的许多内存泄漏似乎是合法的内存分配,而不是实际的内存泄漏。 例如, A memory block has been leaked. The size is
我正在尝试使用 FastMM 版本 4.99(根据 FastMM4.pas 顶部的注释)。我有followed the instructions使用带有堆栈跟踪的完整 Debug模式,并且当我在 ID
如果我声明 PSomeStruct = ^TSomeStruct; TSomeStruct = record s1 : string; end; 我运行以下代码: var p: PSomeSt
如果可能的话,我希望我的 Delphi 项目在程序运行时生成 FASTMM 内存泄漏报告,并在关闭时附加到该报告,而不必查看 this dialog每次我关闭程序时。 如果不可能让 FMM 创建报告并
我正在尝试使用 Delphi 7 调试大型应用程序中的内存使用情况。我能够安装 fastmm debug full dll 并用它解决一些泄漏问题。 我还安装了内存使用跟踪器,让我可以查看分配了哪些
我有以下示例应用程序显示了该问题: program FalseMemLeak; uses ShareMem; var o: TObject; begin o := TObject.Crea
将项目从 Delphi 2007 升级到 Delphi 2009 后,我遇到了未知的内存泄漏,到目前为止我一直在尝试使用 fastMM 来跟踪它,以下是 fastMM 堆栈跟踪报告的内容: A mem
当 FastMM 记录内存泄漏时,它会包含一个可回溯 9 个调用的堆栈跟踪。问题是堆栈跟踪太笼统,无法轻松定位问题。跟踪中的最后一个函数调用至少被调用了 50 次,并且对象泄漏是很常见的。 我该怎么做
我在下面的文章中注意到,您可以从 FastMM 中获取堆栈跟踪,以显示对象的分配位置: How to track down tricky memory leak with fastMM? 不过,我找不
我是一名优秀的程序员,十分优秀!