Eine minimale Ersatzbibliothek für borlndmm.dll, die den nativen Windows-Heap-Allokator umschließt. Es wäre einfach, diese Bibliothek so anzupassen, dass sie ein anderes Allokator-Backend wie jemalloc, tcmalloc oder mimalloc verwendet.
Debug-Builds können POISON_HEAP_USER_DATA definieren, um die neu zugewiesenen oder freigegebenen Speicherblöcke mit Nicht-NULL-Bytes zu speichern, was dabei helfen kann, nicht initialisierte Variablen zu identifizieren oder nach einem freien Problem zu verwenden. Tools wie WinDbg können zusätzliche Heap-Debugging-Funktionen für native Heaps aktivieren, z. B. Benutzer-Stack-Traces, und der WinDbg-Befehl !heap kann Zuordnungen abfragen. Dies kann bei der Suche nach Speicherzuordnungsproblemen hilfreich sein. Um davon zu profitieren, sollten Sie Ihre Kartendateien über map2dbg in DBG-Dateien konvertieren, damit WinDbg Ihnen die richtigen Symbole liefert.
Release-Builds profitieren von der Leistung der nativen Windows-Heap-Zuweisungen sowie den integrierten Heap-Sicherheitsmaßnahmen.
Um eine Verknüpfung in der Standardlaufzeitbibliothek (z. B. CC32260MT.DLL oder CC64260MT.DLL) zu vermeiden, erstellen wir ein leeres c0d32w.obj und c0d64w.a.
Um sicherzustellen, dass ilink64 die erwarteten Exportnamen generiert, verwenden wir eine DEF-Datei, um die Exporte manuell anzugeben.
Erstellen Sie borlndmm.cbproj mit C++ Builder (getestet mit Version 10.3.2).
Veröffentlicht unter der 3-Klausel-BSD-Lizenz.