Добрый день, столкнулся с проблемой утечек памяти, с помощью FastMM оптимизировал код, FastMM перестал "ругаться". Для надежности решил проверить MemCheck'om, и вот что получил в результате:
| Код | MemCheck version 2.75
TOP 10 Leaks: begin Leak #0 User allocated memory (GetMem) Size: 16 1 Occurence call stack - 0 : (no debug info) Find error: 15F3F274 call stack - 1 : Routine @Sysutils@TMultiReadExclusiveWriteSynchronizer@BeginWrite Find error: 00412EA3 call stack - 2 : Routine @Forms@TCustomForm@Create Find error: 0047541D call stack - 3 : Routine @Forms@TApplication@CreateForm Find error: 00480297 call stack - 4 : (no debug info) Find error: 0051CE65 call stack - 5 : (no debug info) Find error: 7C816D4B call stack - 6 : (no debug info) Find error: FFFFFFFC
TOP 10 Leaks: end
Total leak: 16 bytes
*** MEMCHK: Blocks STILL allocated ***
Leak #0 User allocated memory (GetMem) Size: 16 1 Occurence call stack - 0 : (no debug info) Find error: 15F3F274 call stack - 1 : Routine @Sysutils@TMultiReadExclusiveWriteSynchronizer@BeginWrite Find error: 00412EA3 call stack - 2 : Routine @Forms@TCustomForm@Create Find error: 0047541D call stack - 3 : Routine @Forms@TApplication@CreateForm Find error: 00480297 call stack - 4 : (no debug info) Find error: 0051CE65 call stack - 5 : (no debug info) Find error: 7C816D4B call stack - 6 : (no debug info) Find error: FFFFFFFC
*** MEMCHK: End of allocated blocks ***
*** MEMCHK: Chronological leak information ***
* User allocated memory (GetMem) (Leak #0) Size: 16
*** MEMCHK: End of chronological leak information ***
*** MEMCHK: Blocks written to after destruction ***
Bad blocks count: 0
*** MEMCHK: End of blocks written to after destruction ***
|
код DPR
| Код | program ToTools;
uses MemCheck in 'units\MemCheck.pas', //FastMM4 in 'Components\FastMM478\FastMM4.pas', Forms, main in 'forms\main.pas' {frmMain}, viewApp in 'forms\viewApp.pas' {frmViewApp}, LogException in 'forms\LogException.pas' {frmException}, settings in 'forms\settings.pas' {frmSettings};
{$R *.res}
begin MemChk; Application.Initialize; Application.CreateForm(TfrmMain, frmMain); Application.Run; end.
|
Подскажите, а кому верить? |