FAstMM在IdStack.pas中报告TIdCriticalSection的内存泄漏。我理解这是一种有意的泄漏,在代码中有记录。 我不明白的是,为什么IdStack被包含在我的项目中。如何找出是哪个单元引用了它? 是否有一种方法可以使用Delphi 2007附带的fastmm版本从报告...
我阅读了FastMM4的源代码,并注意到这个有趣的函数function GetThreadID: Cardinal; {$ifdef 32Bit} asm mov eax, FS:[$24] end; {$else} begin Result := GetCurrentThreadID...
我正在尝试追踪一个访问冲突。可重现性似乎不确定且很少发生,因此在继续之前我想检查一下我的几个假设。 这个访问冲突是在FastMM4版本4.991中的DebugGetMem函数中引发的,在以下代码中:if (ASize > (MaximumMediumBlockSize - BlockH...
在 Delphi 7 项目中,我们安装了 FastMM。不久之后,我们注意到其中一个窗体在关闭时开始发出“抽象错误”消息。我已经进行了大量调试,但到目前为止还找不到原因。通常出现此错误消息的原因似乎不适用于此处。应用程序没有定义抽象类。我还在窗体中搜索可能使用 TStrings 或类似内容的地...
我在我的Delphi应用程序中使用FastMM来跟踪内存泄漏,特别是在FullDebugMode下。随着Delphi XE2的新版本发布,我们是否可以将FastMM作为内存管理器?FastMM能够与Win64平台一起工作吗?
我不知道如何检测静态或动态链接的DLL中的内存泄漏。我只想检测DLL中的泄漏,而且我不想在DLL和应用程序之间共享内存管理器。此外,该DLL与运行时包相链接。 我的示例DLL如下所示: library dll; uses fastmm4, System.SysUtils, Sy...
我正在处理一个使用工厂来构建对象的项目。我在全局变量中保留了指向工厂函数的指针(我知道这很糟糕),并在初始化时进行注册。 最近我想查看该项目是否存在内存泄漏,所以决定下载FastMM4并进行检查。它发现了一些错误,我可以修复,但是下面代码中显示的问题却让我有点困惑,似乎是我没有释放与工厂相关...
我知道如何使用GlobalMemoryStatusEx获取系统内存使用情况,但它只告诉我整个操作系统正在使用的内存。 我真的希望我的程序报告它单独分配和使用了多少内存。 在我的Delphi 2009程序中,是否有任何方式调用Windows函数或某些FastMM功能,以查找仅由我的程序分配的...
假设在启动时创建了一些表单和仅一个数据模块的应用程序。 在 DM1.OnCreate 事件中,创建了一个 TStringList 以供运行时使用。 我们知道当应用程序被终止时,所有东西都会被销毁并且内存会自动释放。释放某些东西可能需要一些时间,因此不总是建议担心关闭时的内存泄漏。例如,参见 B...
在GUI测试运行器中,内存泄漏检查的菜单项不可用(灰色)。是否有一种特殊的开关我还没有发现可以激活它们? 使用Delphi 2009或sourceforge Subversion库中的DUnit 9.4以及FastMM4.92。