-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FastMM5 and FireMonkey #47
Comments
Hi, You need to add either the backward compatible Best regards, |
I did this already and it shows the memory leak but doesn't write a callstack to file. What have to be done to get a call stack in file which should be written to the same directory like the EXE? |
The FastMM_LogToFileEvents set controls which events are logged to file. The option you're looking for is mmetUnexpectedMemoryLeakDetail. This will log the summary as well as the detail to the log file: You also need FastMM_FullDebugMode(64).dll either in the same folder as the executable or on the path in order to get stack traces. |
Now it works. Thanks. But why did I not need this in the past (old FastMM5)? Simple EnterDebugMode did the job? Other question: --------------------------------2024-02-16 16:05:21-------------------------------- This block was allocated by thread 0x65C, and the stack trace (return addresses) at the time was: The block is currently used for an object of class: FMX.Types.TTabList The allocation number is: 331440 Current memory dump of 28 bytes starting at pointer address B444700: |
And a second question: My DPR looks like: begin var l:=TStringlist.Create; Application.Initialize; The memory leak of the string lsit is reported --------------------------------2024-02-16 16:05:21-------------------------------- This block was allocated by thread 0x65C, and the stack trace (return addresses) at the time was: The block is currently used for an object of class: System.Classes.TStringList The allocation number is: 1 Current memory dump of 84 bytes starting at pointer address 5A7AEC0: but one line is empty. I assumed that this should be the linke in my DPR. Why is this not outputted? Why is my code not in the stack trace? My settings looks like: |
But why did I not need this in the past (old FastMM5)? Simple EnterDebugMode did the job? I need a deeper callstack / stacktrace in to log. Could I increase it? The missing unit and line info for calls from the DPR seems to be an issue with the JCL map file parser. When using the .map file I see this: But when I embed JCL debug info into the executable I see this: Usually there's not a lot of code in the DPR, so I don't think this is a serious issue. However, if it is a problem for you you can install the JCL debug expert package and have it inject JDBG info into your executable. As an added advantage then you also do not need to ship the .map file with the executable. |
Hallo,
I have a simple FMX-projecz (Win32) and try to use FastMM5 but it doesn't report leaks. Under VCL all works fine.
What's wronmg here?
program Project1;
uses
FastMM5,
Classes,
FMX.Forms,
FMX.Types,
;
{$R *.res}
begin
FastMM5.FastMM_EnterDebugMode;
var l:=TStringlist.Create;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
The text was updated successfully, but these errors were encountered: