MemoryLeak - FastMM - edo - 04-08-2017
TClientDataset'den türettiğim bir component'de bir MemoryLeak sorunu yaşıyorum ve çözemedim bir türlü. FastMM'in verdiği log dosyası aşağıdaki gibi ama açıkçası FastMM'in sanırım tam kullanımını bilmediğimden için olabilir hatayı ürettiğini söylediğini düşündüğüm kısımdan bir şey anlamadım (bir sorun göremedim).
Kod:
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 36
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
41A93A [FastMM4.pas][FastMM4][DebugReallocMem$qqrpvi][9816]
40730F [System.pas][System][@ReallocMem$qqrrpvi][4736]
40B91D [System.pas][System][@UStrSetLength$qqrr20System.UnicodeStringi][29336]
40B99E [System.pas][System][@UStrCat$qqrr20System.UnicodeStringx20System.UnicodeString][29449]
B6871D [myCompany.JsonFunctions.pas][myCompany.JsonFunctions][Jsonfunctions.FindVariables$qqrx20System.UnicodeStringo][71]
B694AB [myCompany.JsonQuery.pas][myCompany.JsonQuery][Jsonquery.TEJsonQuery.FindVariables$qqrv][253]
B6A541 [myCompany.JsonDataset.pas][myCompany.JsonDataset][Jsondataset.TEJsonDataset.PostInsert$qqrv][165]
B6ACBD [myCompany.JsonDataset.pas][myCompany.JsonDataset][Jsondataset.TEJsonDataset.DoBeforePost$qqrv][238]
690264 [Data.DB.pas][Data.DB][Db.TDataSet.Post$qqrv][14369]
93BB96 [Datasnap.DBClient.pas][Datasnap.DBClient][Dbclient.TCustomClientDataSet.Post$qqrv][3352]
DE40E0 [cxDBData.pas][cxDBData][TcxDBDataController.CheckBrowseMode$qqrv][4541]
The block is currently used for an object of class: UnicodeString
The allocation number is: 141448
Current memory dump of 256 bytes starting at pointer address 7EBD27E0:
B0 04 02 00 01 00 00 00 05 00 00 00 72 00 6F 00 77 00 69 00 64 00 00 00 91 49 2B 75 80 80 80 80
80 80 80 80 80 80 80 80 00 00 00 00 21 2A BD 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FA 48 02 00 D2 72 40 00 DF A5 40 00 6C AA 40 00 D2 58 AB 00 FE 80 AB 00 39 6E AE 00 42 E6 AD 00
24 E6 AD 00 36 8B AB 00 9B 6E AE 00 E1 22 AF 00 2C 2D 00 00 2C 2D 00 00 99 A6 40 00 1D C2 40 00
41 C1 40 00 65 C2 40 00 9B D5 40 00 86 C2 40 00 41 C1 40 00 05 88 40 00 EA 85 40 00 45 8E 40 00
3D E7 AD 00 22 00 00 00 B0 04 02 00 A1 8D 22 88 E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 5E 72 DD 77 80 80 00 00 00 00 D1 2A BD 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 54 02 00 D2 72 40 00 DF A5 40 00 D3 AB 40 00
° . . . . . . . . . . . r . o . w . i . d . . . ‘ I + u € € € €
€ € € € € € € € . . . . ! * ½ ~ . . . . . . . . . . . . . . . .
ú H . . Ò r @ . ß ¥ @ . l ª @ . Ò X « . ş € « . 9 n ® . B æ .
$ æ . 6 ‹ « . › n ® . á " ¯ . , - . . , - . . ™ ¦ @ . . Â @ .
A Á @ . e  @ . › Õ @ . †  @ . A Á @ . . ˆ @ . ê … @ . E @ .
= ç . " . . . ° . . . ¡ " ˆ ä k . . € € € € € € € € € € € €
€ € € € € € € € € € € € € € € € € € ^ r İ w € € . . . . Ñ * ½ ~
. . . . . . . . . . . . . . . . 7 T . . Ò r @ . ß ¥ @ . Ó « @ .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 52
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4072D2 [System.pas][System][@GetMem$qqri][4614]
40A5DF [System.pas][System][@NewUnicodeString$qqri][24052]
40A810 [System.pas][System][@UStrFromPWCharLen$qqrr20System.UnicodeStringpbi][24730]
438500 [System.SysUtils.pas][System.SysUtils][Sysutils.TStringBuilder.ToString$qqrv][27061]
94A1E5 [System.JSON.pas][System.JSON][Json.TJSONString.AsTValue$qqrp24System.Typinfo.TTypeInfor18System.Rtti.TValue][1392]
B69784 [System.JSON.pas][myCompany.JsonQuery][Json.TJSONValue.%Cast$20System.UnicodeString%$qqrv$20System.UnicodeString][1303]
4072EE [System.pas][System][@FreeMem$qqrpv][4662]
4085F1 [System.pas][System][TObject.FreeInstance$qqrv][16461]
408E45 [System.pas][System][@ClassDestroy$qqrxp14System.TObject][17833]
408766 [System.pas][System][TObject.$bdtr$qqrv][16521]
9492CA [System.JSON.pas][System.JSON][Json.FindJSONValue$qqrxp22System.Json.TJSONValuex20System.UnicodeString][941]
The block is currently used for an object of class: UnicodeString
The allocation number is: 142771
Current memory dump of 256 bytes starting at pointer address 7EC09C10:
B0 04 02 00 01 00 00 00 12 00 00 00 41 00 41 00 45 00 6D 00 58 00 64 00 41 00 41 00 45 00 41 00
41 00 41 00 31 00 58 00 6D 00 41 00 41 00 49 00 00 00 29 C0 D9 76 80 80 00 00 00 00 D1 A0 C0 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9D 48 02 00 D2 72 40 00 D3 85 40 00 FA 8D 40 00
AB 03 4E 00 DD 13 4C 00 A4 1A 4C 00 EE EE A2 00 9B 1C A5 00 20 6E AF 00 4A FE B4 00 57 FE B4 00
2C 2D 00 00 2C 2D 00 00 F1 85 40 00 45 8E 40 00 B4 05 4E 00 73 87 40 00 3A 14 4C 00 73 87 40 00
4B EF A2 00 99 20 A5 00 73 87 40 00 45 87 4D 00 E4 81 4D 00 34 00 00 00 E0 B0 4A 00 F8 FC D6 87
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 07 03 29 78 00 00 00 00 51 A8 C0 7E
° . . . . . . . . . . . A . A . E . m . X . d . A . A . E . A .
A . A . 1 . X . m . A . A . I . . . ) À Ù v € € . . . . Ñ À ~
. . . . . . . . . . . . . . . . H . . Ò r @ . Ó … @ . ú @ .
« . N . İ . L . ¤ . L . î î ¢ . › . ¥ . n ¯ . J ş ´ . W ş ´ .
, - . . , - . . ñ … @ . E @ . ´ . N . s ‡ @ . : . L . s ‡ @ .
K ï ¢ . ™ ¥ . s ‡ @ . E ‡ M . ä M . 4 . . . à ° J . ø ü Ö ‡
ä k . . € € € € € € € € € € € € € € € € € € € € € € € € € € € €
€ € € € € € € € € € € € € € € € € € € € . . ) x . . . . Q ¨ À ~
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 84
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4072D2 [System.pas][System][@GetMem$qqri][4614]
4085D3 [System.pas][System][TObject.NewInstance$qqrv][16452]
408DFA [System.pas][System][@ClassCreate$qqrpvzc][17790]
688872 [Data.DB.pas][Data.DB][Db.TParam.$bctr$qqrp26System.Classes.TCollection][11125]
41A8B1 [FastMM4.pas][FastMM4][DebugFreeMem$qqrpv][9781]
4C1462 [System.Classes.pas][System.Classes][Classes.TCollection.Add$qqrv][5795]
687E74 [Data.DB.pas][Data.DB][Db.TParams.CreateParam$qqr18Data.Db.TFieldTypex20System.UnicodeString18Data.Db.TParamType][10860]
B69569 [myCompany.JsonQuery.pas][myCompany.JsonQuery][Jsonquery.TEJsonQuery.FindVariables$qqrv][266]
B6A541 [myCompany.JsonDataset.pas][myCompany.JsonDataset][Jsondataset.TEJsonDataset.PostInsert$qqrv][165]
B6ACBD [myCompany.JsonDataset.pas][myCompany.JsonDataset][Jsondataset.TEJsonDataset.DoBeforePost$qqrv][238]
690264 [Data.DB.pas][Data.DB][Db.TDataSet.Post$qqrv][14369]
The block is currently used for an object of class: TParam
The allocation number is: 141455
Current memory dump of 256 bytes starting at pointer address 7ECE3E20:
08 98 66 00 00 00 00 00 00 00 00 00 20 3E CE 7E 00 00 00 00 00 00 00 00 02 01 00 00 00 00 00 00
1C 9C C0 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EC 27 BD 7E 18 01 00 00 00 00 00 00
C4 AC 66 00 00 00 00 00 00 00 00 00 43 99 D1 78 80 80 80 80 80 80 80 80 00 00 00 00 61 31 CE 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 88 4D 02 00 3A A9 41 00 0F 73 40 00 07 D3 40 00
4A D4 40 00 97 83 43 00 52 75 43 00 A6 84 43 00 80 A1 94 00 98 BD 94 00 16 B4 94 00 E7 B2 94 00
2C 2D 00 00 2C 2D 00 00 A4 D5 40 00 86 C2 40 00 41 C1 40 00 05 88 40 00 EA 85 40 00 45 8E 40 00
66 87 40 00 73 87 40 00 5B A1 94 00 73 87 40 00 C4 9D 94 00 48 00 00 00 00 00 00 00 F0 B8 60 86
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
. ˜ f . . . . . . . . . > Î ~ . . . . . . . . . . . . . . . .
. œ À ~ . . . . . . . . . . . . . . . . ì ' ½ ~ . . . . . . . .
Ä ¬ f . . . . . . . . . C ™ Ñ x € € € € € € € € . . . . a 1 Î ~
. . . . . . . . . . . . . . . . ˆ M . . : © A . . s @ . . Ó @ .
J Ô @ . — ƒ C . R u C . ¦ „ C . € ¡ ” . ˜ ½ ” . . ´ ” . ç ² ” .
, - . . , - . . ¤ Õ @ . † Â @ . A Á @ . . ˆ @ . ê … @ . E @ .
f ‡ @ . s ‡ @ . [ ¡ ” . s ‡ @ . Ä ” . H . . . . . . . ğ ¸ ` †
ä k . . € € € € € € € € € € € € € € € € € € € € € € € € € € € €
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 68
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1FB5B
76CE7A0A [Unknown function at IsNLSDefinedString]
76CBF05F [VirtualQueryEx]
76CBF11C [VirtualQuery]
5C98FD9 [GetFrameBasedStackTrace]
77532FDD [Unknown function at RtlQueryPerformanceCounter]
5C99336 [GetRawStackTrace]
41976E [FastMM4.pas][FastMM4][CalculateHeaderCheckSum$qqrp29Fastmm4.TFullDebugBlockHeader][9080]
The block is currently used for an object of class: Unknown
The allocation number is: 48486
Current memory dump of 256 bytes starting at pointer address 7ECE9530:
3C 00 B4 4D 08 00 00 00 00 00 00 00 00 00 00 00 3F 00 00 00 00 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 43 00 80 80 80 80 80 80 80 80 80 80 80 80 80 80 01 00 00 00 0F 00 00 00
BF E1 0B 5D 80 80 80 80 00 00 00 00 71 84 CE 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5F BD 00 00 36 AA 41 00 9E 72 40 00 D2 90 40 00 6E 94 40 00 08 AE 91 00 79 16 4C 00 0B B0 91 00
92 55 93 00 16 98 93 00 6C B6 B6 00 F1 B6 B6 00 2C 2D 00 00 2C 2D 00 00 EE 72 40 00 2A 91 40 00
01 91 40 00 12 88 40 00 EA 85 40 00 45 8E 40 00 66 87 40 00 73 87 40 00 66 B3 91 00 D4 9F 40 00
4F 3E 19 01 40 00 00 00 00 00 00 00 D8 90 C6 87 E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
< . ´ M . . . . . . . . . . . . ? . . . . € € € € € € € € € € €
€ € € € € € € € C . € € € € € € € € € € € € € € . . . . . . . .
¿ á . ] € € € € . . . . q „ Î ~ . . . . . . . . . . . . . . . .
_ ½ . . 6 ª A . r @ . Ò @ . n ” @ . . ® ‘ . y . L . . ° ‘ .
’ U “ . . ˜ “ . l ¶ ¶ . ñ ¶ ¶ . , - . . , - . . î r @ . * ‘ @ .
. ‘ @ . . ˆ @ . ê … @ . E @ . f ‡ @ . s ‡ @ . f ³ ‘ . Ô Ÿ @ .
O > . . @ . . . . . . . Ø Æ ‡ ä k . . € € € € € € € € € € € €
€ € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € €
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1719F
4DB1A52D
4DB1A537
4DB248A8
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D1958 [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
The block is currently used for an object of class: Unknown
The allocation number is: 48514
Current memory dump of 256 bytes starting at pointer address 7ED55D20:
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 B2 99 EA 7E 80 80 80 80 00 00 00 00 21 69 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 75 BD 00 00 54 9E B2 4D 19 84 B2 4D A9 1A B2 4D
E8 3C B2 4D AE 09 5D 77 58 19 5D 77 3C 19 5D 77 3C 19 5D 77 63 A8 58 77 DD 2F 53 77 06 34 53 77
2C 2D 00 00 2C 2D 00 00 3C 9E B2 4D 29 84 B2 4D 12 70 B1 4D E0 71 B1 4D 04 3C B2 4D 9B 31 B3 4D
B1 32 B3 4D A9 11 AE 4D 64 93 53 77 70 A8 55 77 4F A8 55 77 10 00 00 00 E4 6B 1B 01 36 57 BC CD
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 C9 A8 43 32 80 80 80 80 00 00 00 00 61 9C D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 8F 00 00 D2 72 40 00 D3 85 40 00 FA 8D 40 00
EA F1 4D 00 C5 01 41 00 FA 8D 40 00 EB 03 4C 00 0C 6F D1 00 0C 1A D9 00 34 92 F4 00 A4 C7 DF 00
ä k . . € € € € 0 • Î ~ € € € € ² ™ ê ~ € € € € . . . . ! i Õ ~
. . . . . . . . . . . . . . . . u ½ . . T ² M . „ ² M © . ² M
è < ² M ® . ] w X . ] w < . ] w < . ] w c ¨ X w İ / S w . 4 S w
, - . . , - . . < ² M ) „ ² M . p ± M à q ± M . < ² M › 1 ³ M
± 2 ³ M © . ® M d “ S w p ¨ U w O ¨ U w . . . . ä k . . 6 W ¼ Í
ä k . . € € € € € € € € € € € € É ¨ C 2 € € € € . . . . a œ Õ ~
. . . . . . . . . . . . . . . . . . . Ò r @ . Ó … @ . ú @ .
ê ñ M . Å . A . ú @ . ë . L . . o Ñ . . . Ù . 4 ’ ô . ¤ Ç ß .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1A52D
4DB1A537
4DB24059
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D1958 [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
7758A863 [Unknown function at RtlUlonglongByteSwap]
The block is currently used for an object of class: Unknown
The allocation number is: 48504
Current memory dump of 256 bytes starting at pointer address 7ED55FA0:
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 9B 68 43 55 80 80 80 80 00 00 00 00 00 41 D5 7E
00 00 00 00 00 00 00 00 50 A6 41 00 00 00 00 00 83 BD 00 00 54 9E B2 4D 19 84 B2 4D A9 1A B2 4D
9F 71 B1 4D 2D A5 B1 4D 37 A5 B1 4D 53 4D B2 4D AE 09 5D 77 58 19 5D 77 3C 19 5D 77 3C 19 5D 77
2C 2D 00 00 2C 2D 00 00 F1 85 40 00 45 8E 40 00 66 87 40 00 73 87 40 00 5B A1 94 00 73 87 40 00
C4 9D 94 00 73 87 40 00 30 AF 94 00 73 87 40 00 10 C2 94 00 10 00 00 00 44 6E 42 00 F0 91 C3 80
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 0F 6E 3C 7F 80 80 80 80 00 00 00 00 E1 67 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1A BF 00 00 3A A9 41 00 0F 73 40 00 07 D3 40 00
CC D3 44 00 F1 D3 44 00 4B C1 44 00 55 B0 94 00 0D B4 94 00 E7 B2 94 00 E4 B3 94 00 1D B6 94 00
ä k . . € € € € 0 • Î ~ € € € € › h C U € € € € . . . . . A Õ ~
. . . . . . . . P ¦ A . . . . . ƒ ½ . . T ² M . „ ² M © . ² M
Ÿ q ± M - ¥ ± M 7 ¥ ± M S M ² M ® . ] w X . ] w < . ] w < . ] w
, - . . , - . . ñ … @ . E @ . f ‡ @ . s ‡ @ . [ ¡ ” . s ‡ @ .
Ä ” . s ‡ @ . 0 ¯ ” . s ‡ @ . . Â ” . . . . . D n B . ğ ‘ Ã €
ä k . . € € € € 0 • Î ~ € € € € . n < € € € € . . . . á g Õ ~
. . . . . . . . . . . . . . . . . ¿ . . : © A . . s @ . . Ó @ .
Ì Ó D . ñ Ó D . K Á D . U ° ” . . ´ ” . ç ² ” . ä ³ ” . . ¶ ” .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1719F
4DB1A52D
4DB1A537
4DB24D53
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D1958 [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
The block is currently used for an object of class: Unknown
The allocation number is: 48515
Current memory dump of 256 bytes starting at pointer address 7ED56040:
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 0F 6E 3C 7F 80 80 80 80 00 00 00 00 E1 67 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1A BF 00 00 3A A9 41 00 0F 73 40 00 07 D3 40 00
CC D3 44 00 F1 D3 44 00 4B C1 44 00 55 B0 94 00 0D B4 94 00 E7 B2 94 00 E4 B3 94 00 1D B6 94 00
2C 2D 00 00 2C 2D 00 00 EE 72 40 00 A4 D5 40 00 CD D1 40 00 27 D5 94 00 73 87 40 00 4E AF 94 00
73 87 40 00 10 C2 94 00 45 8E 40 00 73 87 40 00 F0 9D 94 00 10 00 00 00 00 00 00 00 F6 76 66 87
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 09 89 99 78 80 80 80 80 00 00 00 00 21 4B D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FC BE 00 00 D3 85 40 00 FA 8D 40 00 72 9C 94 00
02 B4 94 00 E7 B2 94 00 E4 B3 94 00 1D B6 94 00 FE AA 94 00 8E AB 94 00 3E AC 94 00 57 B3 B6 00
ä k . . € € € € 0 • Î ~ € € € € . n < € € € € . . . . á g Õ ~
. . . . . . . . . . . . . . . . . ¿ . . : © A . . s @ . . Ó @ .
Ì Ó D . ñ Ó D . K Á D . U ° ” . . ´ ” . ç ² ” . ä ³ ” . . ¶ ” .
, - . . , - . . î r @ . ¤ Õ @ . Í Ñ @ . ' Õ ” . s ‡ @ . N ¯ ” .
s ‡ @ . . Â ” . E @ . s ‡ @ . ğ ” . . . . . . . . . ö v f ‡
ä k . . € € € € € € € € € € € € . ‰ ™ x € € € € . . . . ! K Õ ~
. . . . . . . . . . . . . . . . ü ¾ . . Ó … @ . ú @ . r œ ” .
. ´ ” . ç ² ” . ä ³ ” . . ¶ ” . ş ª ” . « ” . > ¬ ” . W ³ ¶ .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1719F
4DB1A52D
4DB1A537
4DB33770
4DB1B273
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D1958 [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
The block is currently used for an object of class: Unknown
The allocation number is: 48497
Current memory dump of 256 bytes starting at pointer address 7ED567C0:
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 4D E3 E6 A8 80 80 80 80 00 00 00 00 A1 61 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 21 BF 00 00 D3 85 40 00 FA 8D 40 00 72 9C 94 00
02 B4 94 00 E7 B2 94 00 E4 B3 94 00 1D B6 94 00 F5 B4 94 00 2F B6 94 00 69 B4 94 00 E7 B2 94 00
2C 2D 00 00 2C 2D 00 00 F1 85 40 00 45 8E 40 00 06 9E 94 00 73 87 40 00 30 AF 94 00 73 87 40 00
10 C2 94 00 45 8E 40 00 73 87 40 00 F0 9D 94 00 73 87 40 00 14 00 00 00 48 3F 94 00 CF 81 3C 89
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 30 7E C3 76 00 00 00 00 C1 69 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C9 86 00 00 D2 72 40 00 DF A5 40 00 6C AA 40 00
7C 1B 4C 00 2F 42 4C 00 E6 9D 67 00 D7 BF 68 00 EC 53 93 00 04 AC 4C 00 31 AE 4C 00 EE 72 40 00
ä k . . € € € € 0 • Î ~ € € € € M ã æ ¨ € € € € . . . . ¡ a Õ ~
. . . . . . . . . . . . . . . . ! ¿ . . Ó … @ . ú @ . r œ ” .
. ´ ” . ç ² ” . ä ³ ” . . ¶ ” . õ ´ ” . / ¶ ” . i ´ ” . ç ² ” .
, - . . , - . . ñ … @ . E @ . . ” . s ‡ @ . 0 ¯ ” . s ‡ @ .
. Â ” . E @ . s ‡ @ . ğ ” . s ‡ @ . . . . . H ? ” . Ï < ‰
ä k . . € € € € € € € € € € € € € € € € 0 ~ Ã v . . . . Á i Õ ~
. . . . . . . . . . . . . . . . É † . . Ò r @ . ß ¥ @ . l ª @ .
| . L . / B L . æ g . × ¿ h . ì S “ . . ¬ L . 1 ® L . î r @ .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1719F
4DB1A52D
4DB1A537
4DB2440C
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D1958 [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
The block is currently used for an object of class: Unknown
The allocation number is: 48513
Current memory dump of 256 bytes starting at pointer address 7ED56AE0:
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 8C 6C 3C 7F 80 80 80 80 00 00 00 00 C1 6E D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6D 95 00 00 D2 72 40 00 D3 85 40 00 FA 8D 40 00
44 87 40 00 4D 87 40 00 C3 BB D3 00 64 9F D3 00 BA AC D3 00 50 09 D3 00 88 09 D3 00 49 2A D3 00
2C 2D 00 00 2C 2D 00 00 EE 72 40 00 F1 85 40 00 45 8E 40 00 7D F5 4B 00 73 87 40 00 C5 B5 D3 00
73 87 40 00 BD 00 D4 00 F6 00 D4 00 D4 9F 40 00 4F 3E 19 01 14 00 00 00 E0 D1 D2 00 0D 28 44 8B
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 F2 D7 BB 74 00 00 00 00 C1 55 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 BF 00 00 D3 85 40 00 FA 8D 40 00 33 74 43 00
DC 85 40 00 FA 8D 40 00 18 A1 94 00 3F BC 94 00 16 B4 94 00 E7 B2 94 00 E4 B3 94 00 1D B6 94 00
ä k . . € € € € 0 • Î ~ € € € € Œ l < € € € € . . . . Á n Õ ~
. . . . . . . . . . . . . . . . m • . . Ò r @ . Ó … @ . ú @ .
D ‡ @ . M ‡ @ . Ã » Ó . d Ÿ Ó . º ¬ Ó . P . Ó . ˆ . Ó . I * Ó .
, - . . , - . . î r @ . ñ … @ . E @ . } õ K . s ‡ @ . Å µ Ó .
s ‡ @ . ½ . Ô . ö . Ô . Ô Ÿ @ . O > . . . . . . à Ñ Ò . . ( D ‹
ä k . . € € € € € € € € € € € € € € € € ò × » t . . . . Á U Õ ~
. . . . . . . . . . . . . . . . . ¿ . . Ó … @ . ú @ . 3 t C .
Ü … @ . ú @ . . ¡ ” . ? ¼ ” . . ´ ” . ç ² ” . ä ³ ” . . ¶ ” .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1A52D
4DB1A537
4DB1B86F
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D1958 [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
7758A863 [Unknown function at RtlUlonglongByteSwap]
The block is currently used for an object of class: Unknown
The allocation number is: 48499
Current memory dump of 256 bytes starting at pointer address 7ED56D60:
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 CA E2 43 55 80 80 80 80 00 00 00 00 41 76 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 93 00 00 D2 72 40 00 D3 85 40 00 FA 8D 40 00
8A 08 B6 00 15 F0 B5 00 9F 8A B5 00 B1 7B B5 00 88 6B AF 00 B7 80 A5 00 52 6D AF 00 80 23 A5 00
2C 2D 00 00 2C 2D 00 00 EE 72 40 00 F1 85 40 00 45 8E 40 00 66 87 40 00 73 87 40 00 8B 61 A6 00
73 87 40 00 A2 F6 A5 00 4C CD A5 00 8E C7 44 00 FC 0C CE 76 14 00 00 00 28 50 B6 00 8A C5 56 00
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 75 3A A9 FF 00 00 00 00 01 7A D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1E 90 00 00 D2 72 40 00 D3 85 40 00 FA 8D 40 00
76 E4 DC 00 4E 0E DC 00 57 EB DB 00 1C CF E4 00 85 AA DB 00 D4 B1 E4 00 15 0B E5 00 9F 0E E5 00
ä k . . € € € € 0 • Î ~ € € € € Ê â C U € € € € . . . . A v Õ ~
. . . . . . . . . . . . . . . . d “ . . Ò r @ . Ó … @ . ú @ .
Š . ¶ . . ğ µ . Ÿ Š µ . ± { µ . ˆ k ¯ . · € ¥ . R m ¯ . € # ¥ .
, - . . , - . . î r @ . ñ … @ . E @ . f ‡ @ . s ‡ @ . ‹ a ¦ .
s ‡ @ . ¢ ö ¥ . L Í ¥ . Ç D . ü . Î v . . . . ( P ¶ . Š Å V .
ä k . . € € € € € € € € € € € € € € € € u : © ÿ . . . . . z Õ ~
. . . . . . . . . . . . . . . . . . . Ò r @ . Ó … @ . ú @ .
v ä Ü . N . Ü . W ë Û . . Ï ä . … ª Û . Ô ± ä . . . å . Ÿ . å .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1A52D
4DB1A537
4DB1AEC1
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D1958 [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
The block is currently used for an object of class: Unknown
The allocation number is: 48488
Current memory dump of 256 bytes starting at pointer address 7ED57F80:
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 44 79 3F 55 80 80 80 80 00 00 00 00 C1 5A D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 86 00 00 D2 72 40 00 D3 85 40 00 FA 8D 40 00
44 87 40 00 4E 01 4C 00 C9 81 8B 00 04 AC 4C 00 31 AE 4C 00 EE 72 40 00 99 A6 40 00 06 B1 4C 00
2C 2D 00 00 2C 2D 00 00 EE 72 40 00 F1 85 40 00 45 8E 40 00 7D F5 4B 00 73 87 40 00 A2 01 4C 00
73 87 40 00 4A 87 8B 00 45 87 4D 00 E4 81 4D 00 AA 8C 55 00 14 00 00 00 18 94 49 00 26 54 B7 85
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 D9 AB 48 7A 00 00 00 00 E1 80 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 90 00 00 D2 72 40 00 D3 85 40 00 FA 8D 40 00
44 87 40 00 67 B5 55 00 6B 81 55 00 9C E9 55 00 5D EA 55 00 B1 9E 55 00 EE 59 56 00 1D 3D E4 00
ä k . . € € € € 0 • Î ~ € € € € D y ? U € € € € . . . . Á Z Õ ~
. . . . . . . . . . . . . . . . . † . . Ò r @ . Ó … @ . ú @ .
D ‡ @ . N . L . É ‹ . . ¬ L . 1 ® L . î r @ . ™ ¦ @ . . ± L .
, - . . , - . . î r @ . ñ … @ . E @ . } õ K . s ‡ @ . ¢ . L .
s ‡ @ . J ‡ ‹ . E ‡ M . ä M . ª Œ U . . . . . . ” I . & T · …
ä k . . € € € € € € € € € € € € € € € € Ù « H z . . . . á € Õ ~
. . . . . . . . . . . . . . . . . . . Ò r @ . Ó … @ . ú @ .
D ‡ @ . g µ U . k U . œ é U . ] ê U . ± U . î Y V . . = ä .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 20
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB21AA9
4DB1719F
4DB1A52D
4DB1A537
4DB1BD19
775D09AE [Unknown function at RtlpNtEnumerateSubKey]
775D1958 [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
775D193C [Unknown function at RtlpNtEnumerateSubKey]
The block is currently used for an object of class: Unknown
The allocation number is: 48500
Current memory dump of 256 bytes starting at pointer address 7ED5A6E0:
E4 6B 1B 01 80 80 80 80 30 95 CE 7E 80 80 80 80 8C B7 3C 7F 80 80 80 80 00 00 00 00 C1 A5 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 8F 00 00 D2 72 40 00 D3 85 40 00 FA 8D 40 00
02 E2 CE 00 72 C5 40 00 77 CD CE 00 EF 38 CF 00 0E 5D D3 00 1A 80 D9 00 CE 6E D9 00 1F C8 DF 00
2C 2D 00 00 2C 2D 00 00 EE 72 40 00 F1 85 40 00 45 8E 40 00 8B E2 CE 00 73 87 40 00 09 CE CE 00
73 87 40 00 63 3A CF 00 73 87 40 00 EA 6F D9 00 9C A8 41 00 14 00 00 00 80 C6 CE 00 CA C0 85 8B
E4 6B 1B 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 35 3F 7A 74 00 00 00 00 41 A8 D5 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 8F 00 00 D2 72 40 00 DF A5 40 00 6C AA 40 00
7C 1B 4C 00 41 15 58 00 A8 6E D9 00 1F C8 DF 00 70 BC FC 00 75 87 FA 00 C1 3B F8 00 37 10 0B 01
ä k . . € € € € 0 • Î ~ € € € € Œ · < € € € € . . . . Á ¥ Õ ~
. . . . . . . . . . . . . . . . V . . Ò r @ . Ó … @ . ú @ .
. â Î . r Å @ . w Í Î . ï 8 Ï . . ] Ó . . € Ù . Î n Ù . . È ß .
, - . . , - . . î r @ . ñ … @ . E @ . ‹ â Î . s ‡ @ . . Î Î .
s ‡ @ . c : Ï . s ‡ @ . ê o Ù . œ ¨ A . . . . . € Æ Î . Ê À … ‹
ä k . . € € € € € € € € € € € € € € € € 5 ? z t . . . . A ¨ Õ ~
. . . . . . . . . . . . . . . . > . . Ò r @ . ß ¥ @ . l ª @ .
| . L . A . X . ¨ n Ù . . È ß . p ¼ ü . u ‡ ú . Á ; ø . 7 . . .
--------------------------------2017/8/4 11:05:07--------------------------------
A memory block has been leaked. The size is: 212
This block was allocated by thread 0x2D2C, and the stack trace (return addresses) at the time was:
4DB29E54
4DB28419
4DB2C134
4DB2B02D
4DB2C08F
4DB3319B
4DB332B1
4DAE11A9
77539364 [Unknown function at RtlQueryEnvironmentVariable]
7755A870 [Unknown function at LdrRemoveLoadAsDataTable]
7755A84F [Unknown function at LdrRemoveLoadAsDataTable]
The block is currently used for an object of class: Unknown
The allocation number is: 154459
Current memory dump of 256 bytes starting at pointer address 7EF42890:
F4 B2 B4 4D 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 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 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 A1 75 BE A9 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 D1 1F F4 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 C6 00 00 54 9E B2 4D 19 84 B2 4D 3B F1 B0 4D
ô ² ´ M . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . ¡ u ¾ © € € € € € € € € € € € € . . . . Ñ . ô ~
. . . . . . . . . . . . . . . . 5 Æ . . T ² M . „ ² M ; ñ ° M
--------------------------------2017/8/4 11:05:07--------------------------------
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):
13 - 20 bytes: Unknown x 8
21 - 36 bytes: UnicodeString x 1
37 - 52 bytes: UnicodeString x 1
53 - 68 bytes: Unknown x 1
69 - 84 bytes: TParam x 1
181 - 212 bytes: Unknown 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".
Anladığım kadarıyla hatanın FindVariables metodundan geldiğini söylüyor ve onun da içeriği şu şekilde:
function FindVariables(const SQL: string; IncludeDuplicates: Boolean): TStringList;
var
s: string;
//s: widestring;
i: Integer;
Mode: char;
//VarName, EndC, x: WideString;
VarName, EndC, x: string;
VarPos: Integer;
begin
Result := TStringList.Create;
s := SQL + #13#10;
Mode := 'S';
EndC := '';
VarPos := 0;
for i := 1 to Length(s) do
begin
case Mode of
'S':
begin
if s[i] = ':' then
begin
Mode := 'V';
VarName := '';
VarPos := i;
end;
if (s[i] = '''') then
begin
Mode := 'Q';
EndC := '''';
end;
if (s[i] = '/') and (s[i + 1] = '*') then
begin
Mode := 'C';
EndC := '*/';
end;
if (s[i] = '-') and (s[i + 1] = '-') then
begin
Mode := 'C';
EndC := #13#10;
end;
end;
'V':
begin
//if (s[i] <= #255) and not(char(s[i]) in ['a' .. 'z', 'A' .. 'Z', '0' .. '9', '_', '#', '$', #128 .. #255]) then
if (s[i] <= #255) and (not CharInSet(s[i], ['a' .. 'z', 'A' .. 'Z', '0' .. '9', '_', '#', '$', #128 .. #255])) then
begin
//VarName := UpperCase(VarName);
//VarName := AnsiUpperCase(VarName);
if (VarName <> '') and (IncludeDuplicates or (Result.IndexOf(VarName) < 0)) then
Result.Add(VarName);
//Result.AddObject(VarName, TObject(VarPos));
Mode := 'S';
end
else
begin
x := s[i];
VarName := VarName + x;
end;
end;
'C':
if (s[i] = EndC[1]) and (s[i + 1] = EndC[2]) then
Mode := 'S';
'Q':
if (s[i] = EndC[1]) then
Mode := 'S';
end;
end;
end;
Sorunla ilgili fikir verebilecek, yol gösterebilecek arkadaşlara şimdiden teşekkür ederim.
MemoryLeak - FastMM - SimaWB - 06-08-2017
FindVariables çağrıldığı yerde Free edilmiyor olabilir mi? TStringList tipinde bir yanıt döndüğü için çağrıldığı yerde bu hafızanın serbest bırakılması lazım.
Cvp: MemoryLeak - FastMM - edo - 07-08-2017
(06-08-2017, Saat: 15:53)SimaWB Adlı Kullanıcıdan Alıntı: FindVariables çağrıldığı yerde Free edilmiyor olabilir mi? TStringList tipinde bir yanıt döndüğü için çağrıldığı yerde bu hafızanın serbest bırakılması lazım.
Keşke öyle olsaydı ama değil malesef Aynı isimde 2 metod olduğu için FastMM log'undaki FindVariables'ın adını FindVars olarak değiştirdim. Sorun devam ediyor.
procedure TEJsonQuery.FindVariables;
var
SL: TStringList;
I: Integer;
begin
SL := FindVars(Self.SQL.Text, False);
try
for i := FParams.Count - 1 downto 0 do
begin
if SL.IndexOf(FParams.Items[i].Name) < 0 then
begin
FParams.RemoveParam(FParams.Items[i]);
end;
end;
for I := 0 to SL.Count - 1 do
begin
if FParams.FindParam(SL[i]) = nil then
begin
FParams.CreateParam(ftString, SL[i], ptUnknown);
end;
end;
finally
SL.Free;
end;
end;
MemoryLeak - FastMM - mcuyan - 11-08-2017
System.ReportMemoryLeaksOnShutdown:=False; yapsanız acaba çözüm olur mu?
Cvp: MemoryLeak - FastMM - edo - 11-08-2017
(11-08-2017, Saat: 02:32)mcuyan Adlı Kullanıcıdan Alıntı: System.ReportMemoryLeaksOnShutdown:=False; yapsanız acaba çözüm olur mu?
Bu dediğiniz sadece MemoryLeak varsa onu göstermez yani bir nevi pisliği halının altına süpürmek gibi düşünebilirsiniz. Zaten bu değişkenin default değeri False'dur.
Cvp: MemoryLeak - FastMM - The_aLiEn - 05-09-2017
(07-08-2017, Saat: 10:18)edo Adlı Kullanıcıdan Alıntı: (06-08-2017, Saat: 15:53)SimaWB Adlı Kullanıcıdan Alıntı: FindVariables çağrıldığı yerde Free edilmiyor olabilir mi? TStringList tipinde bir yanıt döndüğü için çağrıldığı yerde bu hafızanın serbest bırakılması lazım.
Keşke öyle olsaydı ama değil malesef Aynı isimde 2 metod olduğu için FastMM log'undaki FindVariables'ın adını FindVars olarak değiştirdim. Sorun devam ediyor.
procedure TEJsonQuery.FindVariables;
var
SL: TStringList;
I: Integer;
begin
SL := FindVars(Self.SQL.Text, False);
try
for i := FParams.Count - 1 downto 0 do
begin
if SL.IndexOf(FParams.Items[i].Name) < 0 then
begin
FParams.RemoveParam(FParams.Items[i]);
end;
end;
for I := 0 to SL.Count - 1 do
begin
if FParams.FindParam(SL[i]) = nil then
begin
FParams.CreateParam(ftString, SL[i], ptUnknown);
end;
end;
finally
SL.Free;
end;
end;
Hmm.. Here's is a nice one..
Problem FParams'ın RemoveParam metod çağrımından kaynaklanıyor. Dökümantasyona da giderseniz şöyle bir açıklama yapılmıştır:
"Use RemoveParam to remove a field parameter from the Items list. RemoveParam takes Value out of the list but does not free it."
TParam, Free olmadığı için leak veriyor
|