(решено) heaptrc error"96 used in system startup"

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

(решено) heaptrc error"96 used in system startup"

Сообщение vitaly_l » 13.04.2017 23:06:42

Всем хорошего настроения!

Дано: heaptrc
Возвращает: error "96 used in system startup" (как на картинке)
Вроде ничего не рушится, но всё равно непонятно, зачем оно это 96 in system startup?
:?: :arrow: Как искать причину? :oops: :cry:

Спасибо.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось vitaly_l 14.04.2017 09:21:19, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: heaptrc error"96 used in system startup" как искать прич

Сообщение runewalsh » 13.04.2017 23:40:49

Посмотри в исходниках heaptrc. Вообще похоже на баг, что EntryMemUsed запоминается в TraceInitThread вместо initialization, но это не твой случай (цифры сходятся) и вообще ты сорт оф второй человек в мире, который вообще читал отчёт об отсутствии утечек дальше четвёртой строки XD.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 578
Зарегистрирован: 27.04.2010 00:15:25

Re: heaptrc error"96 used in system startup" как искать прич

Сообщение vitaly_l » 14.04.2017 00:07:11

runewalsh писал(а):TraceInitThread

Да действительно, я совсем забыл что можно же смотреть в коде. Спасибо за верный посыл. Нашёл вот это:
SysGetFPCHeapStatus => http://lazarus-ccr.sourceforge.net/docs ... tatus.html
Там сказано вот это:
Код: Выделить всё
SysGetFPCHeapStatus

Return the status of the FPC heapmanager

Declaration
Source position: heaph.inc line 77
function SysGetFPCHeapStatus: TFPCHeapStatus;

Description
SysGetFPCHeapStatus returns the status of the default FPC heapmanager. It is set as the default value of the corresponding GetFPCHeapStatus function.

Errors
None. The result of this function is bogus information if the current heapmanager is not the standard FPC heapmanager.

See also
GetFPCHeapStatus
 
Return FPC heap manager status information

SysGetFPCHeapStatus.CurrHeapUsed - вроде не похоже на ошибку.

Кроме того нашёл, что утечку ищут вот так:
Код: Выделить всё
  Data:=getfpcheapstatus.currheapused;
  test;
  Writeln ('Lost ',getfpcheapstatus.currheapused-data);
  // Выводим - сколько байт памяти потеряно (результат = 0)

Соответственно это просто какая-то фигня выводится, о том что, что-то там занимает 96 чего-то.
.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: heaptrc error"96 used in system startup" как искать прич

Сообщение zub » 14.04.2017 00:40:54

96 байт было выделено rtlем до того как heaptrc начал работать. Так всегда, не обращай внимание

Добавлено спустя 19 минут 23 секунды:
Re: heaptrc error"96 used in system startup" как искать причину?
>>heaptrc error
кто тебе сказал что это еррор?
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: heaptrc error"96 used in system startup" как искать прич

Сообщение Cheb » 14.04.2017 04:44:36

Лол, оно использует MessageBox со стилем "сообщение об ошибке" для вывода информации. Кому-то было в лом возиться, нужный стиль подставлять :D
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: heaptrc error"96 used in system startup" как искать прич

Сообщение vitaly_l » 14.04.2017 09:20:42

zub писал(а):до того как heaptrc начал работать

Ага... теперь совсем понял. я думал что это так, но heaptrc по идее запускается самым первым. но по логике подходит.
Cheb писал(а):Кому-то было в лом возиться, нужный стиль подставлять

Верю и понимаю, но решил перестраховаться на форуме, что это именно так.

Всем большущее спасибо, теперь мне не страшен этот "серый волк".
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: (решено) heaptrc error"96 used in system startup"

Сообщение zub » 14.04.2017 11:28:28

>>Лол, оно использует MessageBox со стилем "сообщение об ошибке" для вывода информации
По крайней мере в win32 оно используется под аргументы командной строки. как в консольном, так и гуишном вариантах

>>но heaptrc по идее запускается самым первым
Первым инициализируется system т.к. он неявно uses первым у любого модуля, потом уже то что объявлено программистом
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: (решено) heaptrc error"96 used in system startup"

Сообщение vitaly_l » 14.04.2017 11:38:06

zub писал(а):Первым инициализируется system т.к. он неявно uses первым у любого модуля, потом уже то что объявлено программистом

:roll: Вообще-то в инструкции сказано, что он запускается первым, при команде: -gh. И там сказано, что это (-gh) именно для запуска его первым, так сделано. Но это в общем-то не актуально, т.к. теперь стало ясно-понятно что, там что-то подгружается раньше него и занимает 96 чего-то.

Но почему-то, иногда это сообщение (про 96 чего-то) - не выскакивает. И вот это напрягло. Но я в любом случае не копенгаген - это починить, т.к. это явно не в моей власти.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: (решено) heaptrc error"96 used in system startup"

Сообщение zub » 14.04.2017 11:45:58

>>не выскакивает.
ниразу не видел такого. у меня в вин32 - 80 (не 96) всегда при запуске не из иде. если есть параметры командной строки то больше

Добавлено спустя 3 минуты 53 секунды:
>>Вообще-то в инструкции сказано, что он запускается первым
Как ты представляешь его работу если rtl еще не инициализирована? он такой весь самодостаточный?
system в неявном uses у heaptrc, heaptrc это обычный модуль, просто переопределяет функции менеджера пямяти на себя.
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: (решено) heaptrc error"96 used in system startup"

Сообщение vitaly_l » 14.04.2017 12:03:15

zub писал(а):80 (не 96)

Да их в основном три типа, судя по топикам: 80, 96 и 144. Возможно это как-то завязано на железе или действительно на консоль/не консоль.
zub писал(а):Как ты представляешь его работу если rtl еще не инициализирована? он такой весь самодостаточный?

Боюсь - этот, с виду простой вопрос - для меня слишком сложный, т.к. мой мозг мгновенно подвис и предложил мне лучше заняться сегодня рисованием. :cry:
zub писал(а):system в неявном uses у heaptrc, heaptrc это обычный модуль, просто переопределяет функции менеджера пямяти на себя.

Код: Выделить всё
По умолчанию в первой секции uses неявно первым подключается системный модуль PABCSystem, содержащий стандартные константы, типы, процедуры и функции. Даже если раздел uses отсутствует, модуль PABCSystem подключается неявно. Кроме того, по умолчанию с помощью неявной директивы $reference подключаются сборки System.dll, System.Core.dll и mscorlib.dll, содержащие основные .NET-типы.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: (решено) heaptrc error"96 used in system startup"

Сообщение zub » 14.04.2017 12:33:05

Что за АВСхрень ты постишь?
http://wiki.freepascal.org/Uses
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: (решено) heaptrc error"96 used in system startup"

Сообщение vitaly_l » 14.04.2017 12:44:36

zub писал(а):Что за АВСхрень ты постишь?

Первую, хрень которую выдал goooogl. Я даже не вникал, что именно там написано, просто убедился что оно "как-то примерно так про неявное в uses" и перепостил прочитанное. А оно действительно не к месту. Но это не я виноват... это всё гуууууугл - правильно искать не умеет :wink:
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

Рейтинг@Mail.ru