Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Que el modo Debug se comporte como el Release...

Iniciado por DraKKaR, 27 de Mayo de 2003, 10:55:45 AM

« anterior - próximo »

DraKKaR

                                Parece ser que cuando ejecutas algo en modo debug, el visual studio inicializa variables que no has inicializado y cosas asi. Por lo que cuando ejecutas algo en Release se peta el programa, pero cuando vas a depurarlo funciona bien y no puedes depurarlo. Lo mismo ocurre si ejecutas un programa dandole a 'F5' o a 'ctrl-F5'.
¿Alguien sabe alguna manera de hacer que todos estos modos se comporten de la misma manera y ke no se inicialice nada automaticamente?

Grasias.                                

Ithaqua

                                Puedes depurar en release también, no tienes más que cambiar un par de parámetros en project->settings para que te incluya la información necesaria como si fuera una versión debug .                                
thaqua^Stravaganza
http://ithaqua.stravaganza.org

MChiz

                                Pero creo que si haces eso, entonces te compila como si fuese Debug, no? Yo siempre que me encuentro con este caso, me dedico a poner trazas ( MessageBox o cosas asi ). Al final, refinando refinando, lo encuentras, pero es una mierda.
Otra opcion es acostumbrarte a inicializar SIEMPRE las variables :)
Esos problemas son muy muy cabrones... Suerte!                                

Mars Attacks

                                ¿Qué has roto ahora? ;)                                

mICrO

                                Pedir que se comporte algo en release como en debug es una tonteria, si esta el modo debug es para que funcione como es.

Sino que sentido tiene 8)

Lo que tienes que hacer es un buen sistema de log que de paso puedes usar para depurar un poco el tema y ver donde te esta cascando, menssage box y message beep es un metodo demasiado anticuado.

Tambien te pueden valer unos buenos throw pero tendras que tener tu sistema de catch bien echo ya que el debug captura toda excepcion lanzada pero el release la tienes que manejar tu mismo.

Ala y suerte                                
ICrO : log off

Zaelsius

                                Siempre puedes utilizar herramientas del tipo "Electric Fence"(linux), que te avisan cuando propasas el rango de un array, etc... Para Windows tambien hay librerías gratuitas para monitorizar esto, aunque ahora de memoria no me acuerdo de ninguna.

Normalmente en modo debug no se incurre en errores de protección de memoria al acceder a posiciones inválidas, pq suele ser memoria contigua que en modo "debug" está siendo usada para depuración...pero si utilizas este tipo de librerías te avisarán de que metes la pata y que en modo release seguramente "petará".

Una herramienta sencillamente genial es Compuware Devpartner Studio, un componente para Visual Studio que actua de forma pasiva al depurar y te saca todos los errores de este tipo, dandote la línea exacta donde metes la pata, etc. Uno de los componentes en que está basado era  antes conocido como "Numega Boundcheckers". La demo se puede bajar de www.compuware.com, pruébala, aunque sólo sea para arreglar el error que te lleva de cabeza :D

Hope this helps!                                

DraKKaR

                                Si ya no es solo las diferencias entre debug y release. Es que tambien se comporta diferente si le das al boton 'ejecutar' o al boton 'go' para runearlo. Mirare las opciones de compilacion y linkado del VC a ver ke encuentro.

Trankilo mars, el problema es de un programa ajeno a nuestro juego XD.

Zelsius.. los programas ke comentas me parecen extremadamente utiles.. les echare un vistazo.                                

Astharoth

                                Bueno, aparte de Boundschecker que ya han comentado, yo apuntare otro mas.

Boundschecker esta bien pero realiza instrumentacion sobre el codigo (es decir, en tiempo de compilacion) para realizar todas las comprobaciones necesarias para detectar leaks, overflows,etc.

Una herramienta muy interesante es el Rational Purify. Esta realiza la instrumentacion sobre el binaro (es decir, puedes testear estas cosas incluso de un programa del cual no tengas los fuentes) y funciona relativamente bien.

Como todo, las buenas costumbres a la hora de programar son el mejor remedio :)

Saludos,Astharoth.                                






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.