5 - 12 bytes: AnsiString x 1, Unknown x 2
13 - 20 bytes: AnsiString x 8, Unknown x 41
21 - 28 bytes: TCriticalSection x 1, AnsiString x 1
Note: Memory leak detail is logged to a text file in the same folder as
this application. To disable this memory leak check, undefine
"EnableMemoryLeakReporting".
w logu są zrzuty pamięci ale ich zawartość nic mi nie mówi, jak znależć
żródło po podanym adresie lub podanym numerem allocate :
--------------------------------2009/3/5 14:04:47----------------------
A memory block has been leaked. The size is: 20
The block is currently used for an object of class: Unknown
The allocation number is: 3172
Current memory dump of 256 bytes starting at pointer address 7FE7D2B0:
01 00 00 00 08 00 00 00 46 69 6C 65 4E 61 6D 65 00 4B 21 18 80 80 80 80
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 0C 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 14 00 00 00 FF FF FF FF 48 DF E7 7F F4 AA 77 08 80 80 80 80
80 80 80 80 B7 20 18 80 00 00 00 00 F1 D3 E7 7F 00 00 00 00 00 00 00 00
66 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
. . . . . . . . F i l e N a m e . K ! . EUR EUR EUR EUR
. . . . . . . . . . . . . . . . e . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . ˙ ˙ ˙ ˙ H ß ç ? ô Ş w . EUR EUR EUR EUR
EUR EUR EUR EUR ? . EUR . . . . ń Ó ç ? . . . . . . . .
f . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
Tu akurat jest napis "FileName" w innych dumpach same krzaki, ale i tak
nic nie moge znależć, jak mozna znależć co jest źle pozamykane ?.
To stary program i mam unit zawierajacy zmienne globalne, większość tych
błedów to stringi, czyzby te zmienne (klasa jest unknown), albo gdzie
szukać TCriticalSection ?
pozdr
Ak
Jeśli dobrze pamiętam, to chyba dla Delphi 5 taki wyciek (20 bajtów)
był w plikach systemowych - sprawdź pusty projekt pod Delphi 5.
--
pozdrowienia
Krzysztof Szyszka, X-Files Software
Developer of X-Files Components
Borland/CodeGear Technology Partner
_________________________________________
Website: http://www.x-files.pl/ E-mail: ne...@x-files.pl
> Jeśli dobrze pamiętam, to chyba dla Delphi 5 taki wyciek (20 bajtów)
> był w plikach systemowych - sprawdź pusty projekt pod Delphi 5.
>
a pustym kurde nie ma wycieków ?, teraz sprawdzilem. Jakiś dissasembler
trzeba użyć i sprawdzić gdzie są adresowane te fragmenty pamieci , czy
jest inny sposób ?
Nauczka (ale wtedy nie było FastMM4, trzeba na bieząco sprawdzać wycieki !).
AK
On 5 Mar, 14:22, Andrzej Kmicic <delph...@poczta.onet.pl> wrote:
> w logu są zrzuty pamięci ale ich zawartość nic mi nie mówi, jak znależć
> żródło po podanym adresie lub podanym numerem allocate :
Próbowałeś włączyć w opcjach FastMM: {$define FullDebugMode} ??
Potem Build aplikacji z opcją kompilatora IncludeTD32 debug Info.
Po zamknięciu programu w logu będa wymienione linie kodu które
powodują ("rozpoczynają") wycieki.
W katalogu programu musi być biblioteka FastMM_FullDebugMode.dll.
Pozdrawiam:
Jaromir
FastMM_FullDebugMode.dll do folderu z aplikacją, do exeka dołączyć plik
map (opcja z pakietu JCL) - może nawet bez tego pójdzie jak będzie plik
map - nie sprawdzałem. Uruchomić aplikację, zamknąć i popatrzeć do loga.
Standardowo masz stos 10 procedur, wykonanych po drodze do alokacji
pamięci - jak Ci za mało możesz sobie powiększyć w źródłach FastMM.
--
z pozdrowieniami
Adam Siwoń