Минимальная библиотека замены borlndmm.dll, которая является оболочкой встроенного распределителя кучи Windows. Было бы несложно адаптировать эту библиотеку для использования другого механизма распределения, такого как jemalloc, tcmalloc или mimalloc.
В отладочных сборках можно определить POISON_HEAP_USER_DATA, чтобы записать в память вновь выделенные или освобожденные блоки памяти с ненулевыми байтами, что может помочь идентифицировать неинициализированную переменную или использовать ее после освобождения. Такие инструменты, как WinDbg, могут включать дополнительные функции отладки кучи для собственных куч, такие как трассировка пользовательского стека, а команда WinDbg !heap может запрашивать выделения. Это может быть полезно при решении проблем с распределением памяти. Чтобы получить от этого выгоду, вам следует преобразовать файлы карт в файлы dbg с помощью map2dbg, чтобы WinDbg предоставил вам правильные символы.
Сборки выпусков выигрывают от производительности собственных распределителей кучи Windows, а также от встроенных средств защиты кучи.
Чтобы избежать связывания с библиотекой времени выполнения по умолчанию (т. е. CC32260MT.DLL или CC64260MT.DLL), мы создаем пустые файлы c0d32w.obj и c0d64w.a.
Чтобы гарантировать, что ilink64 сгенерирует ожидаемые имена экспорта, мы используем файл DEF для указания экспорта вручную.
Соберите borlndmm.cbproj с помощью C++ Builder (проверено с использованием версии 10.3.2).
Выпущено под лицензией BSD с 3 пунктами.