Uma biblioteca de substituição mínima para borlndmm.dll que envolve o alocador de heap nativo do Windows. Seria simples adaptar esta biblioteca para usar um back-end de alocador diferente, como jemalloc, tcmalloc ou mimalloc.
As compilações de depuração podem definir POISON_HEAP_USER_DATA para memset os blocos de memória recém-alocados ou liberados com bytes não NULL, o que pode ajudar a identificar a variável não inicializada ou usar após o problema de liberação. Ferramentas como o WinDbg podem habilitar recursos adicionais de depuração de heap para heaps nativos, como rastreamentos de pilha do usuário, e o comando WinDbg !heap pode consultar alocações. Isso pode ser benéfico para solucionar problemas de alocação de memória. Para se beneficiar disso, você deve converter seus arquivos de mapa em arquivos dbg via map2dbg para que o WinDbg forneça os símbolos corretos.
As compilações de versão se beneficiam do desempenho nativo dos alocadores de heap do Windows, bem como das mitigações de segurança de heap integradas.
Para evitar a vinculação na biblioteca de tempo de execução padrão (ou seja, CC32260MT.DLL ou CC64260MT.DLL), construímos um c0d32w.obj e c0d64w.a vazios.
Para garantir que o ilink64 irá gerar os nomes de exportação esperados, usamos um arquivo DEF para especificar manualmente as exportações.
Construa borlndmm.cbproj com C++ Builder (testado usando a versão 10.3.2).
Lançado sob a licença BSD de 3 cláusulas.