[Jde-dev] Segmentation fault en introrob

Eduardo Perdices eperdices en gsyc.es
Mar Mar 1 17:38:49 CET 2011


Hola,

acabo de probar la última actualización de introrob y nada más arrancar 
se produce un segmentation fault, lo más curioso es que cuando compilo 
con el Makefile de julio directamente funciona, pero cuando compilo con 
el que genera el Makefile.am falla, aunque todo tiene una explicación.

El fallo se produce en navegación.cpp:119, en la llamada:

this->navega = new Navega (this->controller, this, this->view->world);

que está dentro de Navegación::run.

El problema está en que dependiendo del procesador o de cómo se compile 
introbot la variable this->view (que es privada, y que nunca se 
inicializa...) apunta a un sitio u a otro, y dependiendo de la zona de 
memoria en la que esté, al acceder a ella, puede que se acceda a un 
sitio que no le guste al procesador y salte al pensar que se está 
haciendo un buffer overflow.

De hecho con el supuesto "world" que se pasa a Navega, luego no se hace 
nada (o por lo menos yo no lo veo) y por eso no vuelve a pegar al 
acceder a él, sino fallaría igualmente con cualquier Makefile.

Yo lo he solucionado de momento cambiando la llamada a new Navega 
(this->controller, this, NULL), y con eso ya funciona, pero habría que 
arreglarlo porque ahí hay algo raro.

Saludos.


More information about the Jde-developers mailing list