Я работаю во Free Pascal под DOS32 (Go32v2). Периодически возникает задача выяснить, освобождает ли программа память или где-то есть дыра для утечки. Раньше для этого можно было использовать такие удобные переменные как MemAvail, HeapSize. Даже если они работали не вполне точно, утечка памяти была наглядно видна. Теперь их, как известно, во Free Pascal нет... Вопрос к профи: существуют ли какие-нибудь Units, не входящие во стандартный комплект Free Pascal, в которых были бы некоторые аналоги этих функций (работающие в том числе с Go32V2 -- DOS32) ?
А что, разве модуль heaptrc (компиляция с ключом -gh) с задачей определения утечек не справляется? По-моему, как раз он очень четко показывает все невысвобожденные участки памяти.
А как с его помощью получить полный объем heap-а и свободной (или занятой) памяти? (Чтобы сначала понять, есть ли проблема с потерей памяти, и уже после этого искать дыры.)
Будет, почему нет? Как раз для New/Dispose в первую очередь создавался этот модуль:
Цитата
The HEAPTRC unit can be used to debug your memory allocation/deallocation. It keeps track of the calls to getmem/freemem, and, implicitly, of New/Dispose statements.