FastMM4Messages.pas

<< Click to Display Table of Contents >>

Navigation:  Demos > 15 > C++ > DemoCPP_FastMM4 >

FastMM4Messages.pas

{

 

Fast Memory Manager: Messages

 

English translation by Pierre le Riche.

 

}

 

unit FastMM4Messages;

 

interface

 

{$Include FastMM4Options.inc}

 

const

 {The name of the debug info support DLL}

 {$IFDEF MACOS}

 FullDebugModeLibraryName32Bit = 'libFastMM_FullDebugMode.dylib';

 {$ELSE}

 FullDebugModeLibraryName32Bit = 'FastMM_FullDebugMode.dll';

 {$ENDIF}

 FullDebugModeLibraryName64Bit = 'FastMM_FullDebugMode64.dll';

 {Event log strings}

 LogFileExtension = '_MemoryManager_EventLog.txt'#0;

 CRLF = #13#10;

 EventSeparator = '--------------------------------';

 {Class name messages}

 UnknownClassNameMsg = 'Unknown';

 {Memory dump message}

 MemoryDumpMsg = #13#10#13#10'Current memory dump of 256 bytes starting at pointer address ';

 {Block Error Messages}

 BlockScanLogHeader = 'Allocated block logged by LogAllocatedBlocksToFile. The size is: ';

 ErrorMsgHeader = 'FastMM has detected an error during a ';

 GetMemMsg = 'GetMem';

 FreeMemMsg = 'FreeMem';

 ReallocMemMsg = 'ReallocMem';

 BlockCheckMsg = 'free block scan';

 OperationMsg = ' operation. ';

 BlockHeaderCorruptedMsg = 'The block header has been corrupted. ';

 BlockFooterCorruptedMsg = 'The block footer has been corrupted. ';

 FreeModifiedErrorMsg = 'FastMM detected that a block has been modified after being freed. ';

 FreeModifiedDetailMsg = #13#10#13#10'Modified byte offsets (and lengths): ';

 DoubleFreeErrorMsg = 'An attempt has been made to free/reallocate an unallocated block.';

 WrongMMFreeErrorMsg = 'An attempt has been made to free/reallocate a block that was allocated through a different FastMM instance. Check your memory manager sharing settings.';

 PreviousBlockSizeMsg = #13#10#13#10'The previous block size was: ';

 CurrentBlockSizeMsg = #13#10#13#10'The block size is: ';

 PreviousObjectClassMsg = #13#10#13#10'The block was previously used for an object of class: ';

 CurrentObjectClassMsg = #13#10#13#10'The block is currently used for an object of class: ';

 PreviousAllocationGroupMsg = #13#10#13#10'The allocation group was: ';

 PreviousAllocationNumberMsg = #13#10#13#10'The allocation number was: ';

 CurrentAllocationGroupMsg = #13#10#13#10'The allocation group is: ';

 CurrentAllocationNumberMsg = #13#10#13#10'The allocation number is: ';

 BlockErrorMsgTitle = 'Memory Error Detected';

 VirtualMethodErrorHeader = 'FastMM has detected an attempt to call a virtual method on a freed object. An access violation will now be raised in order to abort the current operation.';

 InterfaceErrorHeader = 'FastMM has detected an attempt to use an interface of a freed object. An access violation will now be raised in order to abort the current operation.';

 BlockHeaderCorruptedNoHistoryMsg = ' Unfortunately the block header has been corrupted so no history is available.';

 FreedObjectClassMsg = #13#10#13#10'Freed object class: ';

 VirtualMethodName = #13#10#13#10'Virtual method: ';

 VirtualMethodOffset = 'Offset +';

 VirtualMethodAddress = #13#10#13#10'Virtual method address: ';

 {Stack trace messages}

 CurrentThreadIDMsg = #13#10#13#10'The current thread ID is 0x';

 CurrentStackTraceMsg = ', and the stack trace (return addresses) leading to this error is:';

 ThreadIDPrevAllocMsg = #13#10#13#10'This block was previously allocated by thread 0x';

 ThreadIDAtAllocMsg = #13#10#13#10'This block was allocated by thread 0x';

 ThreadIDAtFreeMsg = #13#10#13#10'The block was previously freed by thread 0x';

 ThreadIDAtObjectAllocMsg = #13#10#13#10'The object was allocated by thread 0x';

 ThreadIDAtObjectFreeMsg = #13#10#13#10'The object was subsequently freed by thread 0x';

 StackTraceMsg = ', and the stack trace (return addresses) at the time was:';

 {Installation Messages}

 AlreadyInstalledMsg = 'FastMM4 is already installed.';

 AlreadyInstalledTitle = 'Already installed.';

 OtherMMInstalledMsg = 'FastMM4 cannot be installed since another third party memory '

 + 'manager has already installed itself.'#13#10'If you want to use FastMM4, '

 + 'please make sure that FastMM4.pas is the very first unit in the "uses"'

 + #13#10'section of your project''s .dpr file.';

 OtherMMInstalledTitle = 'Cannot install FastMM4 - Another memory manager is already installed';

 MemoryAllocatedMsg = 'FastMM4 cannot install since memory has already been '

 + 'allocated through the default memory manager.'#13#10'FastMM4.pas MUST '

 + 'be the first unit in your project''s .dpr file, otherwise memory may '

 + 'be allocated'#13#10'through the default memory manager before FastMM4 '

 + 'gains control. '#13#10#13#10'If you are using an exception trapper '

 + 'like MadExcept (or any tool that modifies the unit initialization '

 + 'order),'#13#10'go into its configuration page and ensure that the '

 + 'FastMM4.pas unit is initialized before any other unit.';

 MemoryAllocatedTitle = 'Cannot install FastMM4 - Memory has already been allocated';

 {Leak checking messages}

 LeakLogHeader = 'A memory block has been leaked. The size is: ';

 LeakMessageHeader = 'This application has leaked memory. ';

 SmallLeakDetail = 'The small block leaks are'

{$ifdef HideExpectedLeaksRegisteredByPointer}

 + ' (excluding expected leaks registered by pointer)'

{$endif}

 + ':'#13#10;

 LargeLeakDetail = 'The sizes of leaked medium and large blocks are'

{$ifdef HideExpectedLeaksRegisteredByPointer}

 + ' (excluding expected leaks registered by pointer)'

{$endif}

 + ': ';

 BytesMessage = ' bytes: ';

 AnsiStringBlockMessage = 'AnsiString';

 UnicodeStringBlockMessage = 'UnicodeString';

 LeakMessageFooter = #13#10

{$ifndef HideMemoryLeakHintMessage}

 + #13#10'Note: '

 {$ifdef RequireIDEPresenceForLeakReporting}

 + 'This memory leak check is only performed if Delphi is currently running on the same computer. '

 {$endif}

 {$ifdef FullDebugMode}

 {$ifdef LogMemoryLeakDetailToFile}

 + 'Memory leak detail is logged to a text file in the same folder as this application. '

 {$else}

 + 'Enable the "LogMemoryLeakDetailToFile" to obtain a log file containing detail on memory leaks. '

 {$endif}

 {$else}

 + 'To obtain a log file containing detail on memory leaks, enable the "FullDebugMode" and "LogMemoryLeakDetailToFile" conditional defines. '

 {$endif}

 + 'To disable this memory leak check, undefine "EnableMemoryLeakReporting".'#13#10

{$endif}

 + #0;

 LeakMessageTitle = 'Memory Leak Detected';

{$ifdef UseOutputDebugString}

 FastMMInstallMsg = 'FastMM has been installed.';

 FastMMInstallSharedMsg = 'Sharing an existing instance of FastMM.';

 FastMMUninstallMsg = 'FastMM has been uninstalled.';

 FastMMUninstallSharedMsg = 'Stopped sharing an existing instance of FastMM.';

{$endif}

{$ifdef DetectMMOperationsAfterUninstall}

 InvalidOperationTitle = 'MM Operation after uninstall.';

 InvalidGetMemMsg = 'FastMM has detected a GetMem call after FastMM was uninstalled.';

 InvalidFreeMemMsg = 'FastMM has detected a FreeMem call after FastMM was uninstalled.';

 InvalidReallocMemMsg = 'FastMM has detected a ReallocMem call after FastMM was uninstalled.';

 InvalidAllocMemMsg = 'FastMM has detected an AllocMem call after FastMM was uninstalled.';

{$endif}

 

{$ifdef LogLockContention}

 LockingReportTitle = 'Locking Report';

 LockingReportHeader = 'Top locking contention sites';

{$endif}

 

{$ifdef UseReleaseStack}

{$ifdef DebugReleaseStack}

 ReleaseStackUsageHeader = 'Release stack usage statistics';

 ReleaseStackUsageSmallBlocksMsg1 = 'Small blocks [';

 ReleaseStackUsageSmallBlocksMsg2 = ']: ';

 ReleaseStackUsageTotalSmallBlocksMsg = 'Total small blocks: ';

 ReleaseStackUsageMediumBlocksMsg = 'Medium blocks: ';

 ReleaseStackUsageLargeBlocksMsg = 'Large blocks: ';

 ReleaseStackUsageTotalMemoryMsg = 'Total memory: ';

 ReleaseStackUsageBuffers1Msg = ' in ';

 ReleaseStackUsageBuffers2Msg = ' buffers [';

{$endif}

{$endif}

 

implementation

 

end.