![]() |
FastMM5 konfigurieren
Hi Leute,
ich tue mich schwer FastMM5 dazu zu bekommen, mir einen detailierten Speicherbericht auszugeben. Ich bekomme lediglich dan kleinen MemoryLeak-Report, den ich auch ohne FastMM bekommen kann. Irgendwas mache ich falsch. Was habe ich gemacht: - FastMM_FullDebugMode.dll ins Ausgabeverzeichnis - FastMM5.pas im Projektverzeichnis - FastMM5 als erste Unit in der dpr - ReportMemoryLeaksOnShutdown:=True in der dpr (oder muss das in die Main-Unit?) Der MemoryLeak-Report bleibt der gleiche. Was muss ich jetzt noch machen, damit ich detailierter Informationen bekomme? GGf. auch in eine Ausgabedatei. |
AW: FastMM5 konfigurieren
Ich nehme an, dass es die .inc Datei zur Konfiguration auch bei FastMM5 gibt. Darin muss der FullDebugMode aktiviert werden.
|
AW: FastMM5 konfigurieren
Zitat:
|
AW: FastMM5 konfigurieren
Zitat:
Delphi-Quellcode:
als erste Zeile in der .dpr Datei.
{$DEFINE FastMM_FullDebugMode}
bzw.
Delphi-Quellcode:
um mit der dll zusammen zu arbeiten.
{$DEFINE FastMM_FullDebugModeWhenDLLAvailable}
Delphi-Quellcode:
um eine Abhängigkeit zur dll zu erzwingen.
{$DEFINE FastMM_DebugLibraryStaticDependency}
Delphi-Quellcode:
zum einschalten des loggins.
{$DEFINE FastMM_EnableMemoryLeakReporting}
|
AW: FastMM5 konfigurieren
Zitat:
Delphi-Quellcode:
Ich finde weder eine Logdatei, noch bekomme ich detailiertere Informationen als ohne FastMM5
program ThreadTest;
uses FastMM5, Vcl.Forms, ThreadTestMain in 'ThreadTestMain.pas' {frmThreadTest}, uSettings in 'uSettings.pas', uRWStream in 'uRWStream.pas', uMonitorData in 'uMonitorData.pas', uETAComWebserver in 'uETAComWebserver.pas', uGetDataFromComSvc in 'uGetDataFromComSvc.pas', uETADataWebserver in 'uETADataWebserver.pas', uMonitorLogging in 'uMonitorLogging.pas', MonLogList in 'MonLogList.pas' {frmMonLogList}; {$DEFINE FastMM_FullDebugMode} {$DEFINE FastMM_FullDebugModeWhenDLLAvailable} {$DEFINE FastMM_DebugLibraryStaticDependency} {$DEFINE FastMM_EnableMemoryLeakReporting} {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TfrmThreadTest, frmThreadTest); Application.CreateForm(TfrmMonLogList, frmMonLogList); ReportMemoryLeaksOnShutdown:=True; Application.Run; end. |
AW: FastMM5 konfigurieren
Zitat:
Delphi-Quellcode:
austauschen.
FastMM_EnterDebugMode
Delphi-Quellcode:
mit deinen Wunsch-datei-namen überschreiben. Aber ist schon lange her das ich es ausprobiert hatte, habe mir nur ein paar infos in einem kleinen projekt gesichert und kommentiert :oops:
FastMM_SetEventLogFilename
|
AW: FastMM5 konfigurieren
Zitat:
|
AW: FastMM5 konfigurieren
Egal ob vor oder nach dem USES,
innerhalb des Projekts werden DEFINEs niemals über Grenzen von Units hinweg durchgereicht. Aber man kann es in den Projektoptionen eintragen, also von außerhalb, als Parameter des Compilers. > Erzeugen > Delphi-Compiler > Bedingungen |
AW: FastMM5 konfigurieren
Zitat:
|
AW: FastMM5 konfigurieren
Hab's jetzt so:
Delphi-Quellcode:
Keine Meldung, keine Logdatei
program ThreadTest;
{$DEFINE FastMM_FullDebugMode} {$DEFINE FastMM_FullDebugModeWhenDLLAvailable} {$DEFINE FastMM_DebugLibraryStaticDependency} {$DEFINE FastMM_EnableMemoryLeakReporting} uses FastMM5, Vcl.Forms, ThreadTestMain in 'ThreadTestMain.pas' {frmThreadTest}, uSettings in 'uSettings.pas', uRWStream in 'uRWStream.pas', uMonitorData in 'uMonitorData.pas', uETAComWebserver in 'uETAComWebserver.pas', uGetDataFromComSvc in 'uGetDataFromComSvc.pas', uETADataWebserver in 'uETADataWebserver.pas', uMonitorLogging in 'uMonitorLogging.pas', MonLogList in 'MonLogList.pas' {frmMonLogList}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TfrmThreadTest, frmThreadTest); Application.CreateForm(TfrmMonLogList, frmMonLogList); FastMM_SetEventLogFilename('D:\Projects\ETA-Monitor\Win32\Debug\MM.log'); FastMM_EnterDebugMode; Application.Run; end. |
AW: FastMM5 konfigurieren
Wie schon gesagt:
Egal ob vor oder nach dem USES, |
AW: FastMM5 konfigurieren
Hallo,
wie weiter oben geschrieben wurde. DEFINES gelten immer nur pro Datei. Das muss unter Projekt-Optionen rein. Danke Bernhard. ;) |
AW: FastMM5 konfigurieren
Ich würde es sowieso in die Projekt-Optionen setzen, da man sicherlich Produktions-Kompilate nicht im FullDebug laufen lassen möchte.
Daher ist ein guter Platz in den DEBUG-Einstellungen und bei PROD bleibt dann die Definition halt weg. Es gibt übrigens ein Video von mir zu FastMM4: ![]() |
AW: FastMM5 konfigurieren
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...8-)
...ich hänge mich auch mal dran. :wink: Zitat:
Die Anleitung befolgt. Alle Tipps in diesem Thread befolgt. Mit {$DEFINE FastMM_IncludeLegacyOptionsFile} die alte .inc "aktiviert"...nix. :evil: Ich bin für Ideen dankbar. PS: "Früher" hatte die FastMM4 mal ein Log geschrieben...irgendwann, als ich es brauchte, nichtmehr. PS: MadExcept auskommentiert Nachtrag: Eine Meldung kommt nur wenn das "ReportMemoryLeaksOnShutdown := True;" gesetzt ist. Ich meine, daß das früher entweder oder war...FastMM oder ReportMemoryLeaksOnShutdown. :gruebel: |
AW: FastMM5 konfigurieren
Die FastMM_FullDebugMode.dll befindet sich aber schon im selben Ordner wie deine EXE oder? Diese muss für die Erstellung eines Logfiles vorhanden sein.
|
AW: FastMM5 konfigurieren
![]() Wird ein anderer oder gar externer MM verwendet, dann hat diese Option natürlich keine Wirkung. (bzw. nicht die, welche geplant ist) |
AW: FastMM5 konfigurieren
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...8-)
Zitat:
Die DLL wird auch geladen und initialisiert. :zwinker: (lt. Debugger in FastMM.pas) ...sonst passiert aber nix. :cry: Nachtrag mit bewußtem Leak: GIT vom FastMM auf FastMM4 zurückgesetzt. Version4 geht wieder. :zwinker: Version5 nicht. |
AW: FastMM5 konfigurieren
Früher mußte man noch in der einen *.INC einstellen, was man haben wollte.
Weiß nicht, ob's die noch gibt, oder ob's dafür inzwischen auch teilweise Optionen gibt. |
AW: FastMM5 konfigurieren
Die alte .inc geht auch...sollte jedenfalls. :gruebel:
Delphi-Quellcode:
...irgendetwas fehlt. :?
{Optionally import the legacy version 4 defines.}
{$ifdef FastMM_IncludeLegacyOptionsFile} {$Include FastMM4Options.inc} {$endif} |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz