Скомпилируйте ваше приложение с полной отладочной информацией, затем в настройках компоновщика убедитесь, что ваша отладочная информация находится в файле .EXE и / или .MAP.
Затем запустите FastMM с FullDebugMode и скопируйте / вставьтеПолученный файл .TXT в вашем вопросе.
См. также этот пост для получения дополнительных советов.
Редактировать:
AХороший первый шаг - сделать что-то подобное в вашем файле .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
участвует в вашей утечке.
Оттуда вы можете начать отладку, чтобы выяснить, почему она протекает.
- Йерун