104得票1回答
有没有一种编程方式可以判断FastMM是否释放了特定的内存块?

我正在尝试检测一块内存是否被释放。当然,管理器会通过对话框或日志文件告诉我,但如果我想将结果存储在数据库中怎么办?例如,我想在数据库表中有给定块分配的例程名称。 阅读FastMM文档后,我知道自从版本4.98以来,我们有可能被管理器通知内存分配、释放和重新分配发生的情况。例如,OnDebug...

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

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

20得票1回答
如何获取自定义结构体的名称,其实例已泄漏内存?

我正在开发一个解析器,用于处理 FASTMM4 内存泄漏报告并将所有相关数据存储在自定义的结构/类中。我使用 VirtualTreeView 将每个有泄漏实例的类显示为树中的一个节点。 这个树形结构 - 请注意,第一个节点显示为 UNKNOWN。这是因为 FASTMM 调用了一个名为 ACla...

19得票4回答
如何从FastMM获取堆栈跟踪

我注意到在下面的帖子中,你可以从FastMM获取堆栈跟踪,显示对象的分配位置: 如何使用FastMM跟踪棘手的内存泄漏? 但是我找不到关于如何在Delphi 2009中启用此功能的信息。 我已将ReportMemoryLeaksOnShutdown设置为true以获取基本报告,但我该如何...

16得票1回答
如何在FastMM4中启用完整的调试模式?

我不知道如何使用FastMM。我从SourceForge下载了它,并将FastMM4Messages.pas和FastMM4.pas放置在我的dpr文件的顶部。 现在,我调用该过程来泄漏一些内存:procedure testMemoryFastMM; var str : T...

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

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

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

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

12得票2回答
从FastMM获取更长的堆栈跟踪?

当FastMM记录内存泄漏时,它会包括一条回溯信息,回溯深度为9层调用。问题在于这个回溯信息太笼统了,难以轻易地定位问题。回溯信息中的最后一个函数调用至少被调用了50次,而且泄漏的对象是非常常见的。 我该怎么做才能让回溯信息更长? 当然欢迎提供更容易定位泄漏的技巧,大多数泄漏的对象都是接口...

12得票4回答
我的Delphi程序为什么内存持续增长?

我正在使用内置FastMM4内存管理器的Delphi 2009。 我的程序读取并处理大型数据集。每当我清除数据集或退出程序时,所有内存都能正确释放,没有任何内存泄漏。 使用spenwarr在如何获取Delphi程序使用的内存中提供的CurrentMemoryUsage例程,我已经显示了Fa...

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

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