Logo

¡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.
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.