⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fastmm4options.inc.svn-base

📁 Memory Manager for delphi 5-2007. Usefully to find the memory leaks and help for optimalize your mem
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
{$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 + -