I think that FastMM4 in FullDebugMode and all checking options is as powerful as possible.
If you have some time, perhaps you could make a test program, and step into the Update method to see where the problem is exactly triggered.
]]>Thanks
]]>See http://synopse.info/fossil/info/e343ec80ea
All tests passed successfully with FastMM4 in FullDebugMode.
I hope EurekaLog will also like this new version.
But when run in FullDebugMode, there is some confusion in the NamedPipe multithreading current implementation:
FastMM has detected an error during a GetMem operation. FastMM detected that a block has been modified after being freed.
Modified byte offsets (and lengths): 13(1)
The previous block size was: 60
This block was previously allocated by thread 0xF70, and the stack trace (return addresses) at the time was:
402A3B
4040C7
40448E
456E42
7C860AC7 [Unknown function at PeekNamedPipe]
456DD6
7C910435 [RtlAcquirePebLock]
7C91043E [RtlAcquirePebLock]
42658B
7C910435 [RtlAcquirePebLock]
7C91043E [RtlAcquirePebLock]
The block was previously used for an object of class: TSQLRestServerNamedPipeResponse
The allocation number was: 1840796
The block was previously freed by thread 0x834, and the stack trace (return addresses) at the time was:
402A5B
4040E5
4044D9
426727
40412B
4265DD
404ED6
7C80B729 [Unknown function at GetModuleFileNameA]
The current thread ID is 0xAA4, and the stack trace (return addresses) leading to this error is:
40A1E5
402A3B
45BF1B
46986C
46A6E2
46ACEF
46ADFD
7C9142AF [Unknown function at RtlDetermineDosPathNameType_U]
7C8109FF [CreateFileW]
45BF60
46AB40
I guess this is the same problem which made EurekaLog fail.
So IMHO there is no memory leak, BUT there is some possible memory corruption of some kind.
I'll now search for the root cause of this use... but in a multi-threaded application, it could be quite difficult to identify...
Stay tuned!
]]>I won't use EurekaLog, but FastMM4 for the memory leak tracking.
Did you try with FastMM4 in full debug mode?
Thanks for the feedback!
Stay tuned!
]]>Before the error the exe use about 9 MB (of RAM), after the error about 18 MB!
Do you think it's possible resolve the problem? All my new application is based on your Framework
Thanks
]]>I'll run the memory leak test over the whole framework, just to check regressions were not introduced with last release.
Thanks for the report.
]]>I use this simple code:
var
ProjectRecord: TSQLProject;
e: integer;
begin
for e := 0 to MyGrid.RowCount - 1 do
begin
ProjectRecord := TSQLProject.Create;
try
ProjectRecord.ID := MyGrid.Cell[1, e].AsInteger;
ProjectRecord.Name := MyGrid.Cell[2, e].AsString;
if not Database.Update(ProjectRecord) then
begin
error := True;
end;
finally
ProjectRecord.Free;
end;
end;
end;
MyGrid is a NextGrid (www.bergsoft.com).
I use EurekaLog to find memory leaks and I have a problem with this line:
if not Database.Update(ProjectRecord) then
This is the error: "Memory Overrun leak" but I don't understand where is the problem. Do you have some idea about it?
]]>