El linker que usa gcc y g++, tiene la opción de -fsatinize=address (opción al linkar, no al compilar)
La cuál permite, en tiempo de ejecución, que el programa detecte las fugas de memorias, diciendote el archivo y linea que ocasiona la fuga.
Creo que es necesario tener activo, en la compilación no en el linker, la opción -g, qué mete el código fuente en el binario.
En C/C++:
gcc -g main.c -c -o main.o
gcc -fsatinize=address main.o -o a
g++ -g main.cpp -c -o main.o
g++ -fsatinize=address main.o -o a
En ensamblador:
yasm -f elf64 -g DWARF2 main.asm
# -f elf64 Compila ensamblador de 64bits a un archivo objeto de 64bits
# -g DWARF2 modo depuracion, incluye código fuente ensalblador al binario
# con etiquetas y comentarios de ensamblador
Luego linkar con ld (verificar) o gcc (si tiene que funcionar)
Así, en el motor que me estoy armando con SDL3, pase a tener 0, si 0, fugas de memoria…