📄 fastmm4options.inc.svn-base
字号:
{$define EnableMemoryLeakReporting}
{开启下面选项将不会显示和记录由指针类型导致的可能的内存泄露。由类(指针)引起
的可能的内存泄露经常不明确,所以这些可能的泄露总是会记录到日志(在FullDebugMode
与LogMemoryLeakDetailToFile开启时)并且当实际泄露比期待的多时一定会显示。}
{$define HideExpectedLeaksRegisteredByPointer}
{开启下面选项以实现仅在Delphi在主机上存在时才报告内存泄露。当"EnableMemoryLeakReporting"
关闭时此选项无效。}
{.$define RequireIDEPresenceForLeakReporting}
{开启下面选项以实现仅在Delphi中调试程序时才报告内存泄露。当"EnableMemoryLeakReporting"
关闭时此选项无效。此选项仅在调试EXE工程时有效,不支持Dll}
{$define RequireDebuggerPresenceForLeakReporting}
{开启下面选项以实现仅在被编译单元中存在调试指示符($D)时才进行泄露检测。当
"EnableMemoryLeakReporting"关闭时此选项无效。}
{.$define RequireDebugInfoForLeakReporting}
{开启此选项以手工控制内存泄露报告。当开启时,ReportMemoryLeaksOnShutdown(程序
关闭时报告内存泄露,默认关闭)会改为选择是否生成报告。开启时,其它泄露检测选项
也必须正确设置才能进行检测}
{.$define ManualLeakReportingControl}
{开启下面选项将不显示内存泄露信息下面的提示语}
{.$define HideMemoryLeakHintMessage}
{-------------------------- 指令集设置 ----------------------------}
{开启下面选项以使用MMX指令集。关闭此选项会导致性能略微下降,但会与AMD K5、
Pentium I等早期处理器保持兼容。目前MMX指令只在可变尺寸的内存移动中使用,所以如
果UseCustomVariableSizeMoveRoutines关闭,此选项无效。}
{.$define EnableMMX}
{开启下面选项以强制使用MMX指令集,而不管CPU是否支持。如果这一选项被关闭,
将会首先检查CPU是否支持MMX指令。当EnabledMMX关闭时无效。}
{$define ForceMMX}
{----------------------- 共享内存管理器设置 ------------------------}
{允许共同使用FastMM编译的主程序和Dll之间共享内存管理器。你可以向Dll中的函数传递
动态数组和长字符串。需要编译Dll时开启AttemptToUseSharedMM才可以真正实现内存共享。
注意如果主程序是单线程而Dll是多线程的,你必须在主程序里开启IsMultiThread,否则在
线程冲突时程序会崩溃。注意静态链接的Dll会在主程序之前初始化,所以主程序实际会与
Dll共享内存管理器。
}
{.$define ShareMM}
{允许Dll之间(或静态链接Dll时与主程序之间)共享内存管理器,要求共同使用FastMM编译。
在使用动态链接的Dll时需要注意,因为如果Dll被卸载而其它Dll仍在共享内存管理器,程
序将会崩溃。这个选项只与Dll库相关而且需要ShareMM与AttemptToUseSharedMM开启。注意
如果Dll是静态链接的,它们会在主程序之前初始化,实际是主程序与它们共享管理器。当
ShareMM关闭时此选项无效}
{.$define ShareMMIfLibrary}
{开启下面选项,会尝试在主程序和与之共同编译的Dll(也开启此选项)之间共享内存管理
器。当共享时,由使用共享者产生的泄露将不会自动清除。由于静态链接的Dll是在主程序
之前初始化的,所以根据情况设置共享选项}
{.$define AttemptToUseSharedMM}
{开启下面编译选项以保证内存管理器的向后兼容性。对Delphi2006与Delphi2007与老版本
FastMM有效}
{$define EnableBackwardCompatibleMMSharing}
{-------------------------------- 组合设置 ------------------------------}
{开启此选项将激活FullDebugMode、InstallOnlyIfRunningInIDE、LoadDebugDLLDynamically。
如果程序正在Delphi中进行调试运行,FastMM将会进行完全调试(开启FullDebugMode),否则
将使用默认内存管理器(Delphi2006版本以后是未开启FullDebugMode的FastMM)。}
{.$define FullDebugModeInIDE}
{快速配置发布版本和调试版本}
{$ifdef Release}
{发布版本请设置}
{.$undef FullDebugMode}
{.$undef CheckHeapForCorruption}
{.$define ASMVersion}
{.$undef EnableMemoryLeakReporting}
{.$undef UseOutputDebugString}
{$else}
{高度版本请设置}
{.$define FullDebugMode}
{.$define EnableMemoryLeakReporting}
{.$define UseOutputDebugString}
{$endif}
{-------------------- borlndmm.dll 编译选项 ---------------------}
{如果正在重编译borlandmm.dll文件,请根据需要设置以下选项}
{当编译borlandmm.dll时请开启此选项}
{.$define borlndmmdll}
{如果dll被Delphi本身使用请开启此选项}
{.$define dllforide}
{编译调试dll文件时请开启此选项}
{.$define debugdll}
{以下内容请不要改动}
{$ifdef borlndmmdll}
{$define AssumeMultiThreaded}
{$undef HideExpectedLeaksRegisteredByPointer}
{$undef RequireDebuggerPresenceForLeakReporting}
{$undef RequireDebugInfoForLeakReporting}
{$define DetectMMOperationsAfterUninstall}
{$undef ManualLeakReportingControl}
{$undef ShareMM}
{$undef AttemptToUseSharedMM}
{$ifdef dllforide}
{$define NeverUninstall}
{$define HideMemoryLeakHintMessage}
{$undef RequireIDEPresenceForLeakReporting}
{$ifndef debugdll}
{$undef EnableMemoryLeakReporting}
{$endif}
{$else}
{$define EnableMemoryLeakReporting}
{$undef NeverUninstall}
{$undef HideMemoryLeakHintMessage}
{$define RequireIDEPresenceForLeakReporting}
{$endif}
{$ifdef debugdll}
{$define FullDebugMode}
{$define RawStackTraces}
{$undef CatchUseOfFreedInterfaces}
{$define LogErrorsToFile}
{$define LogMemoryLeakDetailToFile}
{$undef ClearLogFileOnStartup}
{$else}
{$undef FullDebugMode}
{$endif}
{$endif}
{把BCB的相关设置都放在这里。在“Build with Dynamic RTL”选项开启的情况下,
CB2006/CB2007可以编译borlandmm.dll文件以追踪内存泄露。}
{------------------------------ 专为BCB设置 ----------------------------}
{要开启为BCB准备的补丁,你需要在"Project Options->Pascal/Delphi Compiler->Defines"
中添加BCB的定义。(感谢JiYuan Xie实现这一部分)}
{$ifdef BCB}
{$ifdef CheckHeapForCorruption}
{$define PatchBCBTerminate}
{$else}
{$ifdef DetectMMOperationsAfterUninstall}
{$define PatchBCBTerminate}
{$else}
{$ifdef EnableMemoryLeakReporting}
{$define PatchBCBTerminate}
{$endif}
{$endif}
{$endif}
{$ifdef PatchBCBTerminate}
{$define CheckCppObjectType}
{$undef CheckCppObjectTypeEnabled}
{$ifdef CheckCppObjectType}
{$define CheckCppObjectTypeEnabled}
{$endif}
{如果"CheckHeapForCorruption"和"EnableMemoryLeakReporting"都未开启,请关闭
"CheckCppObjectTypeEnabled"}
{$ifdef CheckHeapForCorruption}
{$else}
{$ifdef EnableMemoryLeakReporting}
{$else}
{$undef CheckCppObjectTypeEnabled}
{$endif}
{$endif}
{$endif}
{$endif}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -