12/09/2007, 12:06
|
| | | 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 |