Buenas,
Ya había tenido alguna vez problemas con llamadas a malloc en otras partes del código, pero al final tras reorganizarlo un poco acabó tirando.
Pero ahora mismo no hay manera, una llamada a malloc en el procedimiento de renderizar los modelos y casca. No quiero reorganizarlo, parchearlo, enguarrar más el código (basante está ya) para que funcione. Me gustaría arreglar el problema con los malloc definitivamente. Un cara a cara.
He descartado que sea el malloc esclusivamente del procedimiento de renderizado de modelos. Por lo que parece que tengo la memoria jodida de alguna llamada a malloc anterior ¿?. Tengo más o menos unas 70 llamadas a malloc en todo el programa. ¿Cuál es la mejor solución para encontrarlo? ¿Puede ser de otra cosa?
Muchas gracias.
Un saludo.
Has un bypass al malloc y loguealo!
#ifdef _DEBUG
ofstream Log("MiMalloc.log");
void *mimalloc(int bytes)
{
Log << "Llamada a mimalloc con "<< bytes << "bytes";
void *m = malloc(bytes);
Log << ", devolucion: "<< m << endl;
return m;
}
void mifree(void *m)
{
Log << "Liberando: "<< m << endl;
free(m);
}
#else
#define mifree(x) free(x)
#define mimalloc(x) malloc(x)
#endif
Con esto tendras muchos detalles para analizar ...
Tal vez me colé con el ofstream, supongo que si usas malloc no estas programando c++ verdad?, igual creo entenderás la idea y podrás usar un FILE *Log y un fprintf.
Saludos.