Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/09/2007, 12:06
Avatar de Instru
Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52
Re: Punteros que se vuelven locos.

Pues. Si tienes Linux(kubuntu como dijiste) tienes suerte. Digo, tambien se puede hacer wn windows pero es diferente.

Tu problema es obviamente con algun(os) puntero(s). Precisamente esse el comportamiento impredictible de los punteros cuando uno no tiene cuidado con ellos.

Bueno, en linux instala gdb. Si, vas a depurar.

Despues compila tu programa con las opciones -g3 -ggdb
Luego, has una lista mental o escrita de los punteros sospechosos o incluso de variables comunes que de repente fallan por alguna razon desconozida.

Despues ejecuta gdb asi:
gdb mi_programa

Te saldra una linea de comandos alterna.

Ahi escribe help para que veas todo las herramientas que tienes a disposicion para depurar.

Hay una que se llama watchpoints

Eso sirve para que cuando una variable puntero o lo que sea cambie de un valor a otro, el depurador para el programa y te avisa que instruccion fue la que cambio el valor del puntero o la variable.

Generalmente en un problema tuyo te puede salir que un puntero fuera de direccion quiso cambiar algun valro y pues modifico datos que estaban fuera del alcanze permitido. Te daras cuenta facilmente.

gdb mi_prgrama
>watch main.cpp:13(linea 13, donde se supone esta la variable sospechosa)
>run

Con un poco de practica te volveras bueno depurando con este poderoso depurador. Y creeeme, puedes hacer muchisisisimas mas cosas..


Saludos