FastMM4 Options

Source: https://unigui.com/doc/online_help/index.html?fastmm4-options.htm

Here are the options that should be enabled or disabled (based on the scenario) for debugging a uniGUI application. These options are already declared in the file FastMM4uniGUIOptions.inc.

We briefly describe each option and the reason that it must be enabled. For more detailed information about these options please review FastMM4Options.inc or FastMM4uniGUIOptions.inc.

circle-info

When the text says an option "must be enabled" it means it is required for proper uniGUI debugging behavior. When it says "enable this option" it is a recommended setting for the described scenario.

FullDebugMode

This option must be enabled to make sure FastMM4 will run in debug mode with all debugging features enabled.

NeverUninstall

This option must be enabled. (See FastMM4Options.inc)

AssumeMultiThreaded

Every uniGUI app is multi-threaded in nature so this option must be enabled.

NeverSleepOnThreadContention

Enabling this option is required. (See FastMM4Options.inc)

UseSwitchToThread

Enabling this option is required. (See FastMM4Options.inc)

NoDebugInfo

Enable this option to suppress the generation of debug info for the FastMM4.pas unit. This will prevent the integrated debugger from stepping into the memory manager code.

CheckHeapForCorruption

Enabling this option is needed to trace memory corruptions.

CatchUseOfFreedInterfaces

Enable this option to catch accesses to interfaces of an already freed object.

Note: This option is not enabled by default because, according to FastMM docs, it will disable the checking of blocks modified after being freed. Enable it when you specifically need to check issues regarding interfaces to previously freed objects.

ClearLogFileOnStartup

It is enabled and recommended to clear the FastMM log file each time the application starts.

RequireDebuggerPresenceForLeakReporting

This option is enabled by default in FastMM options. When enabled, memory leak reporting only occurs when the Delphi IDE (debugger) is present.

When disabled, memory leak reporting will also occur when Delphi IDE is not running. Memory leak reports are displayed in a system message box and logged into the FastMM log file when the EXE is terminated; therefore this behavior is normally desired only when the application is being debugged in the Delphi IDE.

You can disable this option and enable the NoMessageBoxes option so memory leaks are logged into the FastMM log file only when the application is not being debugged in the Delphi IDE.

NoMessageBoxes

Enable this option to permanently disable showing message boxes for FastMM errors. This is useful for unattended debugging or when showing a message box is not desired (for example, when the application is being tested under HyperServer).