Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema con visual c# express

Iniciado por blau, 06 de Agosto de 2007, 07:55:04 PM

« anterior - próximo »

blau

Buenas,

la verdad que ando algo descolocado, pues hay una condicion que en un determinado momento debe ser verdadera, y no llega a serlo nunca.

Hasta ahi bien, me pongo manos a la obra y pongo un breakpoint para depurarla.

Ejecuto lineas paso a paso, como toda la vida de dios, y resulta que efectivamente, cuando debe de cumplirse la condicion, se cumple.

Me quedo a cuadros, y sigo depurando.

Resulta que durante la ejecucion normal, la condicion no se cumple porque una asignacion que se realiza, (comprobado, se realiza), a la hora de comparar la condicion no la detecta.


Vale, puede que tenga un bug; seguro que lo tengo; pero ¿por que si hago un breakpoint y continuo la ejecucion funciona?.


Lo de las maquinas finitas de estados ha cobrado un nuevo sentido para mi.

Quiza tengo la mente demasiado estresada, creo que la mejor solucion temporal es irme a la piscina. :)

¿Alguien sabe que %&&%$ puede pasar?

Warchief

Puede ser una variable sin inicializar. Al usar el depurador, éste la pone a 0, con lo que funciona el programa. Mira a ver si es eso.

Tei

para otra vez, copipastea un poco del codigo.

Jond

O tambien puede sucederte que en modo Debug, la ejecución del programa si que pase por el evento que te cambia el valor de la variable que luego consultas en la condición.

No, sería la primera vez que a mi me pasa, que en un programa Windows, en modo Debug o en modo ejecución el programa a traviesa un número diferente de eventos, e incluso en diferente orden.

Esto lo puedes ver imprimendo mensajes con los nombres de los metodos en la ventana de debug.

Por eso en modo debug, la condición si que se cumple, porque previamente se ha ejecutado el evento, que te modifica la variable, y en ejecución el progama no pasa por ese evento.

shephiroth

Te aconsejo inicializar las variables que intervengan a null o 0, de ese modo tendran el mismo valor inicial y por ende el mismo final (teoricamente).

blau

Bueno, de momento funciona, :)


antes del bug habia puesto todo patas arriba para cambiar por completo la busqueda de caminos, y fue cuando ya lo tenia medio funcioanando, cuando vi que una de las cosas que tenia que hacer no funcionaba bien.

Os muestro un fragmento del codigo, en el momento que estaba desquiciado.

La variable EsUltimo es la que no tomaba bien el valor, porque la posicion del bicho nunca llegaba a tomar el valor correcto, despues de recorrer un trecho de la ruta.

Tomaba bien el valor cuando pasaba a modo debug.   :shock:





Respecto a la inicializacion de variables, si no inicializas las variables el compilador te da warnings, pero aun asi las variables por defecto toman valor 0, null, false....

Yo creo que el mayor problema esta en mi cabecica ;)

Lo que necesitaba mas que nada es desahogarme, en plan psicoanalisis, eso de soltarlo todo para quedarte descansando y eso.

Creo que dentro del subforo de programacion vendria bien el "rincon del desahogo" para esos momentos que piensas que aprovecharias mejor tu tiempo en la piscinita ... ;)


Ah, por cierto, lo de la variable EsUltimo esta mal planteado, antes del segundo condicional deberia actualizarla. ( De hecho, ahora mismo lo hago)
Y lo unico que he desmantelado es el tema de los eventos, que por cierto, no se porque tienen que fallar. Ya investigare, :)

blau

Ahi esta el codigo que funciona, :)







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.