Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Malloc = Casca

Iniciado por misscelan, 17 de Mayo de 2006, 11:46:02 PM

« anterior - próximo »

misscelan

 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.

Pogacha

 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.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.