Не получается сабж. После завершения программы всегда выдает окошко heaptrc: 0 unfreed memory blocks :0
Помню в версии 0.9.26 окошко выскакивало только если были проблемы с памятью - сейчас перешел на svn 0.9.29 и fpc 2.3.1 - выскакивает всегда! Что это - баг?
1) Убрал галку с Use heaptrc unit (-gh) в Compiler Options - не помогает (баг?).
2) Скачал сегодняшнюю Lazarus svn revision 22358 - не помогает,
3) Сделал Clean+Build со всеми компонентами - - не помогает, heaptrc выскакивает.
Может в fpc 2.3.1 проблема? Скачал из svn - пока не разобрался как его самого через себя скомпилить - сомнеюсь поможет ли...
Может где-то что-то в .cfg поменять?
OS - Windows.
как отключить heaptrc unit?
Модератор: Модераторы
Kon.pasc писал(а):Что это - баг?
Нет не баг!
Удалите модуль heaptrc из файла lpr если он там есть.
Пересобрать весь проект (Запуск/Собрать всё)!
Удалите модуль heaptrc из файла lpr если он там есть.
Так и нету его там
Код: Выделить всё
[package]
main=rtl
[target]
loaders=$(LOADERS)
units=system objpas macpas buildrtl lineinfo lnfodwrf
implicitunits=sysinitpas sysinitcyg sysinitgprof \
ctypes strings \
[b]heaptrc[/b] matrix \
windows winsock winsock2 initc cmem dynlibs signals \
dos crt objects messages \
rtlconsts sysconst sysutils math types \
strutils dateutils varutils variants typinfo fgl classes \
convutils stdconvs cpu mmx charset ucomplex getopts \
winevent sockets printer \
video mouse keyboard fmtbcd \
winsysut sharemem exeinfo fpintres
но у меня не хватает знаний понять для чего этот файл.
У кого-нибудь вообще работает включение/отключение heaptrc из лазаря? С какими версиями fpc и Лазаря?
Ясно, у всех по завершению кода выскакивает окошко heaptrc. Убрать никак. 
Ковырял также с FPC 2.4 rc - безрезультатно.
Случайно нашел причину, если кому интересно.
Для проектов в отладке у меня всегда стоит свой дефайн -dDebug. Пока не обновился до версии 0.9.29 и фпц 2.3.1 все прекрасно работало.
Но вот чудеса, теперь когда есть дефайн "Debug" для проекта ВСЕГДА подключается heaptrc, хоть что ты там делай с галочками.
Кстати в FPC Programmers' Guide в топике Predefined symbols "Debug" не значится.
Ради интереса поискал по сырцам LCL и FPC конструкцию типа {$IFDEF Debug} но почему-то не нашел. В компиляторе зашили что-ли?
Вопрос к знатокам - баг или не баг? Попробуйте кто-нибудь у себя добавить -dDebug при выключенном heaptrc. Идти мне в bugs.freepascal.org или у меня глюки?
Случайно нашел причину, если кому интересно.
Для проектов в отладке у меня всегда стоит свой дефайн -dDebug. Пока не обновился до версии 0.9.29 и фпц 2.3.1 все прекрасно работало.
Но вот чудеса, теперь когда есть дефайн "Debug" для проекта ВСЕГДА подключается heaptrc, хоть что ты там делай с галочками.
Кстати в FPC Programmers' Guide в топике Predefined symbols "Debug" не значится.
Ради интереса поискал по сырцам LCL и FPC конструкцию типа {$IFDEF Debug} но почему-то не нашел. В компиляторе зашили что-ли?
Вопрос к знатокам - баг или не баг? Попробуйте кто-нибудь у себя добавить -dDebug при выключенном heaptrc. Идти мне в bugs.freepascal.org или у меня глюки?
Kon.pasc
Данный "дефайн" определён в конфиге fpc.cfg:
Так что если вы указываете пареметр -dDebug то автоматически добавляется ключ -gh (Использовать модуль Heaptrc) и соответственно -gl
Данный "дефайн" определён в конфиге fpc.cfg:
Код: Выделить всё
#
# Some examples (for switches see below, and the -? helppages)
#
# Try compiling with the -dRELEASE or -dDEBUG on the commandline
#
# For a release compile with optimizes and strip debuginfo
#IFDEF RELEASE
-O2
-Xs
#WRITE Compiling Release Version
#ENDIF
# For a debug version compile with debuginfo and all codegeneration checks on
#IFDEF DEBUG
-glh
-Crtoi
#WRITE Compiling Debug Version
#ENDIF Так что если вы указываете пареметр -dDebug то автоматически добавляется ключ -gh (Использовать модуль Heaptrc) и соответственно -gl
Да, верно. Жаль столько времени убил на разборки. Надо будет впредь поаккуратнее с именами дефайнов.
