← Todos os projetos
Open Source 2026

mint

Rastreador de vazamento de memória para Linux que intercepta o alocador via LD_PRELOAD, sem gravar nenhuma biblioteca em disco.

C CMake LD_PRELOAD Linux
Repositório
Contexto

Rastrear um vazamento de memória num processo Linux de longa duração normalmente significa recorrer ao Valgrind (lento o bastante para mudar comportamento sensível a timing) ou recompilar com ASan (exige rebuild e nem sempre é opção para um binário cujo build você não controla). O objetivo era uma forma de zero recompilação e baixo overhead de apontar para qualquer binário existente e receber um relatório de vazamento na saída.

Resultado

`mint_loader <programa> [args...]` roda qualquer binário sem modificação e imprime um resumo de vazamento no stderr ao sair — bytes vazados, local da alocação e, opcionalmente, stack trace — sem deixar nenhum `.so` em disco depois. Nada para relinkar, nada para limpar.

Arquitetura

O `mint_loader` injeta a `libmint.so` na memória do processo alvo via `memfd_create` em vez de um caminho em disco, sem deixar artefato para trás. A biblioteca intercepta `malloc`/`calloc`/`realloc`/`free`/`memalign`, rastreando alocações vivas num mapa interno construído sobre um alocador vendorizado (liballoc) para que o próprio rastreamento não recaia nas funções interceptadas. Ao sair, o processo percorre o mapa e reporta o que ainda está pendente, com stack traces opcionais via libbacktrace.

Diagrama de arquitetura do mint

Quer algo parecido?

Falar sobre o projeto