![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
использование fastmove с fastmm4 [Delphi, Windows]
heilong © (2008-11-21 11:46:00)В принципе везде рекомендуют использовать так
uses fastmove, fastmm4, ...;
Однако fastmm возмущается что он не первый и выпадает. Вопрос в том что если использовать
uses fastmm4, fastmove, ...;
fastmove будет перехватывать move?
И еще по fastmm, в логе проекта KOL, кроме других ошибок встречается вот такая:
409280 [fastmm4.pas][FastMM4][CheckBlocksOnShutdown][7637]
409FE2 [fastmm4.pas][FastMM4][FinalizeMemoryManager][8691]
40A02A [fastmm4.pas][FastMM4][Finalization][8772]
403B33 [System][FinalizeUnits]
403B4B [System][FinalizeUnits]
403DCE [System][@Halt0]
7C817067 [Unknown function at RegisterWaitForInputIdle]
вроде как fastmm заглючил, кто-нить сталкивался с этим?
heilong (2008-11-24 11:56:00) [1]нашел, в деструкторе:
inherited;
FDLLHandle := 0;
FDLLHandle это поле класса. Так сказать правил несуществующее поле.
Сбило с толку что ругался fastmm сам на себя. Спасибо за помощь.
exero (2008-11-24 11:16:00) [2]а если либу не загружать/выгружать - сообщение остается?
heilong (2008-11-24 11:00:00) [3]только подгружается:
DLLHandle := SafeLoadLibrary(PChar(ClientDLL));
освобождается классически:
FreeLibrary(DLLHandle);
exero (2008-11-24 10:52:00) [4]А dll только подгружается/выгружается или выделяете память - которую потом передаете этой либе? На всякий случай попробуйте $define AssumeMultiThreaded
heilong (2008-11-24 10:16:00) [5]FastMM обнаружил ошибку во время сканирования освобожденного блока операция. FastMM обнаружил что блок был модифицирован после его освобождения.
Размер предыдущего блока был: 176
This block was previously allocated by thread 0x10C, and the stack trace (return addresses) at the time was:
402B7C [system.pas][System][@GetMem][2439]
41A9AC [Common.pas][Common][Common][435]
403BA3 [system.pas][System][InitUnits][10845]
403C0B [system.pas][System][@StartExe][10910]
7C817067 [Unknown function at RegisterWaitForInputIdle]
Выделенный номер был: 86
The block was previously freed by thread 0x10C, and the stack trace (return addresses) at the time was:
402BA7 [system.pas][System][@FreeMem][2466]
41A92D [Common.pas][Common][Finalization][453]
403B33 [system.pas][System][FinalizeUnits][10704]
403DCE [system.pas][System][@Halt0][11374]
7C817067 [Unknown function at RegisterWaitForInputIdle]
The current thread ID is 0x10C, and the stack trace (return addresses) leading to this error is:
4091CC [fastmm4.pas][FastMM4][CheckBlocksOnShutdown][7637]
409F2E [fastmm4.pas][FastMM4][FinalizeMemoryManager][8691]
409F76 [fastmm4.pas][FastMM4][Finalization][8772]
403B33 [system.pas][System][FinalizeUnits][10704]
403DCE [system.pas][System][@Halt0][11374]
7C817067 [Unknown function at RegisterWaitForInputIdle]
initialization
common(435):
mycon := NewhlMyLib;
finalization
common(453):
mycon.Free;
Внутри класса динамичечки загружается/выгружается libmysql.dll. Все равно непонятно что происходит с fastmm. Ни у кого идей нет?
PS. to exero: sorry for familiarity
exero (2008-11-24 07:34:00) [6]heilong: Align16Bytes - разрешил - т.к. в FastCode много используются SSE. UseCustomVariableSizeMoveRoutines - убрал, т.к. использую FastMove. Там же все разжевано - что когда включать/выключать!
PS. Учимся обращаться к незнакомому собеседнику на вы.
heilong (2008-11-21 16:51:00) [7]exero: а какие ты настройки поменял в FastMM4Options.inc? и зачем?
exero (2008-11-21 14:08:00) [8]Во всех проектах на КОЛ использовал FASTMM4, FastCode, FastMove. FastMove будет перехватывать - не волнуйтесь ). Что касается ошибок - ни разу такого не получал.