FastMM is a fast replacement memory manager for Embarcadero Delphi applications that scales well across multiple threads and CPU cores, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.
Stars
321
Forks
88
Watchers
321
Open Issues
37
Overall repository health assessment
No package.json found
This might not be a Node.js project
#65 Fix a potential integer overflow issue in the 64-bit usage tracker demo application (Thanks to Gabriel Moraru.)
ba59e69View on GitHubImprove the handling of unexpected errors in Windows API calls, mostly in the memory manager sharing mechanism. (Thanks to Ian Branch for bringing these to my attention.)
dfab094View on GitHubAdd an important note in the "Statically Linked DLL" demo documentation regarding debug mode and sharing of the memory manager between an application and statically linked libraries: The debug mode DLL also has to be linked statically (if debug mode will be used), otherwise the unpredictable nature of DLL unload order may cause issues during the shutdown memory leak reporting.
0d6a14fView on GitHubAdd an OS_GetCurrentProcessID wrapper instead of calling the Windows API directly - for future support of other operating systems.
4b0a1b1View on GitHub#59 If a corruption was detected in a block then the logging code would always include the first 4 (8 under 64-bit) bytes in the list of detected corruptions.
7aabd9dView on GitHub#58 Invalidate the stack trace memory map whenever a DLL is loaded or unloaded. This will reduce the number of (handled) exceptions when performing stack traces.
2ad18c6View on GitHubAdd a demo application to show how to log memory errors and leaks to a text file without showing any dialogs. This configuration is useful for debugging issues that only occur in production, while causing minimal disruption to normal operation.
c80e84eView on GitHub#55 Add FastMM_DebugBreakAllocationNumber: Allows triggering of a break point in the debugger if the block with the specified allocation number is allocated.
36af2c2View on GitHubFix the failure to correctly report class names in leak reports, etc. when the class name pointer is not aligned to SizeOf(Pointer).
d8b4905View on GitHubAdd a sanity check on the class name pointer in FastMM_DetectClassInstance as an additional safety net in order to prevent blocks from being misidentified as class instances in leak and state reports
58d018cView on GitHub#54 Add FastMM_BeginEraseAllocatedBlockContent and FastMM_EndEraseAllocatedBlockContent. When enabled this will fill newly allocated blocks with the debug pattern, helping to catch bugs involving the use of uninitialized memory. This is a subset of the debug mode functionality, at a substantially reduced CPU cost.
db4f82aView on GitHubAdd support for the UseDelphi5VMTOffsets define allows compilation of a borlndmm.dll library that will correctly log leaked class names when used with applications compiled with very old versions of Delphi.
01e2bebView on GitHub#54 Use the $90909090 debug fill pattern for allocated debug blocks in order to differentiate between errors involving uninitialized allocated memory and errors involving freed memory. Previously allocated debug blocks were initialized with the same $80808080 pattern as freed debug blocks.
f4ffcd3View on GitHub