Una biblioteca de reemplazo mínima para borlndmm.dll que envuelve el asignador de montón nativo de Windows. Sería sencillo adaptar esta biblioteca para utilizar un back-end de asignador diferente, como jemalloc, tcmalloc o mimalloc.
Las compilaciones de depuración pueden definir POISON_HEAP_USER_DATA para configurar los bloques de memoria recién asignados o liberados con bytes no NULL, lo que puede ayudar a identificar variables no inicializadas o su uso después del problema libre. Herramientas como WinDbg pueden habilitar funciones adicionales de depuración de montón para montones nativos, como seguimientos de pila de usuario, y el comando WinDbg !heap puede consultar asignaciones. Esto puede resultar beneficioso para solucionar problemas de asignación de memoria. Para beneficiarse de esto, debe convertir sus archivos de mapas a archivos dbg a través de map2dbg para que WinDbg le proporcione los símbolos correctos.
Las versiones de lanzamiento se benefician del rendimiento de los asignadores de montón nativos de Windows, así como de las mitigaciones de seguridad del montón integradas.
Para evitar la vinculación en la biblioteca de tiempo de ejecución predeterminada (es decir, CC32260MT.DLL o CC64260MT.DLL), creamos un c0d32w.obj y un c0d64w.a vacíos.
Para garantizar que ilink64 genere los nombres de exportación esperados, utilizamos un archivo DEF para especificar manualmente las exportaciones.
Compile borlndmm.cbproj con C++ Builder (probado con la versión 10.3.2).
Publicado bajo la licencia BSD de 3 cláusulas.