7得票4回答
Delphi:IdStack存在内存泄漏问题,但是谁在使用IdStack?

FAstMM在IdStack.pas中报告TIdCriticalSection的内存泄漏。我理解这是一种有意的泄漏,在代码中有记录。 我不明白的是,为什么IdStack被包含在我的项目中。如何找出是哪个单元引用了它? 是否有一种方法可以使用Delphi 2007附带的fastmm版本从报告...

11得票2回答
在汇编中获取线程ID

我阅读了FastMM4的源代码,并注意到这个有趣的函数function GetThreadID: Cardinal; {$ifdef 32Bit} asm mov eax, FS:[$24] end; {$else} begin Result := GetCurrentThreadID...

11得票1回答
FastMM4中偶发的访问冲突,DebugGetMem

我正在尝试追踪一个访问冲突。可重现性似乎不确定且很少发生,因此在继续之前我想检查一下我的几个假设。 这个访问冲突是在FastMM4版本4.991中的DebugGetMem函数中引发的,在以下代码中:if (ASize > (MaximumMediumBlockSize - BlockH...

8得票5回答
Delphi中抽象错误的可能模糊原因是什么?

在 Delphi 7 项目中,我们安装了 FastMM。不久之后,我们注意到其中一个窗体在关闭时开始发出“抽象错误”消息。我已经进行了大量调试,但到目前为止还找不到原因。通常出现此错误消息的原因似乎不适用于此处。应用程序没有定义抽象类。我还在窗体中搜索可能使用 TStrings 或类似内容的地...

12得票2回答
Delphi XE2:FastMM能在Win64应用程序中使用吗?

我在我的Delphi应用程序中使用FastMM来跟踪内存泄漏,特别是在FullDebugMode下。随着Delphi XE2的新版本发布,我们是否可以将FastMM作为内存管理器?FastMM能够与Win64平台一起工作吗?

7得票2回答
如何配置FastMM以便在dll中检测内存泄漏

我不知道如何检测静态或动态链接的DLL中的内存泄漏。我只想检测DLL中的泄漏,而且我不想在DLL和应用程序之间共享内存管理器。此外,该DLL与运行时包相链接。 我的示例DLL如下所示: library dll; uses fastmm4, System.SysUtils, Sy...

7得票1回答
Delphi内存问题(FastMM4)

我正在处理一个使用工厂来构建对象的项目。我在全局变量中保留了指向工厂函数的指针(我知道这很糟糕),并在初始化时进行注册。 最近我想查看该项目是否存在内存泄漏,所以决定下载FastMM4并进行检查。它发现了一些错误,我可以修复,但是下面代码中显示的问题却让我有点困惑,似乎是我没有释放与工厂相关...

53得票6回答
如何获取Delphi程序使用的内存

我知道如何使用GlobalMemoryStatusEx获取系统内存使用情况,但它只告诉我整个操作系统正在使用的内存。 我真的希望我的程序报告它单独分配和使用了多少内存。 在我的Delphi 2009程序中,是否有任何方式调用Windows函数或某些FastMM功能,以查找仅由我的程序分配的...

8得票5回答
除了寻找内存泄漏之外,还有哪些情况下我应该在销毁应用程序时释放所有对象?

假设在启动时创建了一些表单和仅一个数据模块的应用程序。 在 DM1.OnCreate 事件中,创建了一个 TStringList 以供运行时使用。 我们知道当应用程序被终止时,所有东西都会被销毁并且内存会自动释放。释放某些东西可能需要一些时间,因此不总是建议担心关闭时的内存泄漏。例如,参见 B...

13得票1回答
如何在DUnit中使用FastMM开启内存泄漏跟踪?

在GUI测试运行器中,内存泄漏检查的菜单项不可用(灰色)。是否有一种特殊的开关我还没有发现可以激活它们? 使用Delphi 2009或sourceforge Subversion库中的DUnit 9.4以及FastMM4.92。