Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[D5] FastMM4 jak znaleźć zgubioną pamięć

91 views
Skip to first unread message

Andrzej Kmicic

unread,
Mar 5, 2009, 8:22:19 AM3/5/09
to
Wróciłem do starego projektu w D5 i wstawiłem moduł FastMM4 i po
zamknięciu programu otrzymuje komunikat :

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

Krzysztof Szyszka

unread,
Mar 5, 2009, 8:45:58 AM3/5/09
to
Użytkownik "Andrzej Kmicic" <delp...@poczta.onet.pl> napisał w wiadomości
news:goojmg$ici$1...@news.onet.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.

--
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

Andrzej Kmicic

unread,
Mar 5, 2009, 8:58:31 AM3/5/09
to
Krzysztof Szyszka pisze:

> 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

SunSoft

unread,
Mar 5, 2009, 9:43:02 AM3/5/09
to
Witam,

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

Adam Siwoń

unread,
Mar 5, 2009, 9:47:02 AM3/5/09
to
Andrzej Kmicic pisze:

> Krzysztof Szyszka pisze:
>
>> 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 ?

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ń

Andrzej Kmicic

unread,
Mar 5, 2009, 12:26:36 PM3/5/09
to
Adam Siwoń pisze:
Super wszystkie prowadza do jednego miejsca, wiec tam trzeba szukać.
Dziekuje WSZYSTKIM :-).
AK
0 new messages