使用完整的调试信息编译您的应用程序,然后在链接器选项中,确保您的调试信息位于 .EXE 和/或 .MAP 文件中。
然后使用 FullDebugMode 运行 FastMM,并将生成的 .TXT 文件复制/粘贴到您的问题中。
另请参阅这篇文章以获取更多提示。
编辑:
一个好的第一步是在你的 .TXT 文件上做这样的事情:
find "The allocation number is" < fastmmlog.txt | sort /R
在您的情况下,这将为您提供第一个分配编号281
。
从那里,您在 .TXT 中搜索分配号:
--------------------------------2011/1/7 23:31:03--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x1540, and the stack trace (return addresses) at the time was:
402D80 [System][System][@GetMem]
40388F [System][System][TObject.NewInstance]
403C12 [System][System][@ClassCreate]
4038C4 [System][System][TObject.Create]
403C12 [System][System][@ClassCreate]
403C6A [System][System][@AfterConstruction]
457922 [GR32_Bindings][GR32_Bindings][NewRegistry]
45807E [GR32_LowLevel][GR32_LowLevel][RegisterBindings]
458152 [GR32_LowLevel][GR32_LowLevel][GR32_LowLevel]
404373 [System][System][InitUnits]
4043DB [System][System][@StartExe]
The block is currently used for an object of class: TList
The allocation number is: 281
在这里你可以看到,NewRegistry
你的泄漏涉及到。
从那里,您可以开始调试以找出泄漏的原因。
——杰伦