Configurar visual studios para ver el contenido de las variables en modo debug

Iniciado por milya777, 23 Marzo 2011, 00:03 AM

0 Miembros y 1 Visitante están viendo este tema.

milya777

hola que tal? cuando hago un debug en el visual y voy avanzando por los breakpoints no puedo ver el contenido de las variables de mi programa, estoy haciendo un servidor y cuando un cliente me envía información al mismo, no puedo ver el contenido de la variable "buffer", por ejemplo, en donde asigno lo que me envía un cliente(como por ejemplo google crome), mi pregunta es como puedo configurar al visual studio para ver el contenido de todas las variables locales

muchas gracias

Hola quería comentar que estaba haciendo un debug y alguna de las estructuras me mostraban su contenido pero algunas variables no si alguien me puede decir como puedo configurar el visual studio para ver toda la información de las variables se los voy a agradecer, recuerdo que puse este tema en programación c/c++ porq es el lenguaje que uso

saludos

<<<-Basura->>>

No he programado en visual, pero creo que en otro compilador se llama watch... espero que esto te sea de empujon
<<<--Basura-->>>

milya777

Cita de: milya777 en 24 Marzo 2011, 02:24 AM
Dale me fijo y te digo, gracias ¡¡

Hola no encontré esa opción en el visual studio, traté de mientras hacia un debug ver que poseen las variables y tratar de encontrar esa opción que me dijiste pero no la vi

gracias

Akai


milya777

Cita de: Akai en  2 Abril 2011, 20:34 PM
http://msdn.microsoft.com/en-us/library/0taedcee.aspx

Buscar en internet no duele. Hacer doble-posting si.

Por otro lado, compilas en modo debug?

Claro que estoy compilando en modo debug, por eso pongo modo debug en el titulo, si lo vi el documento pero como soy medio bestia en ingles se me complica, seguro a vos no te pasa, otra cosa hace falta q cada vez q me confunda, porq como soy un inexperto hago preguntas tontas en un foro porq quiero aprender y sacarme las dudas, me pongas cosas como

Cita de: Akai
*facepalm*
Era un ejemplo:
file://ruta
donde ruta pueda ser C:/Usuarios/administrador/imagen1.jpg o la ruta que te de la gana poner.

obvio que era un ejemplo

Cita de: Akai
Si "pincha" tu servidor, es que algo falla. Manejas mal la memoria.

En C o C++ no hay problemas de no se "libera" correctamente. Más bien, no la "liberas" correctamente

y obvio por eso pregunto y sino no se usaría más C o C++ si no anduviese bien la alocación de memoria.

Ya que tenes el tiempo de responder cada inquietud, seguro tenes las ganas y el conocimiento ahorate de corregir cada estupidez que pongan los inexpertos como yo porque ninguno es groso y seguro cuando vos empezaste a aprender no te gustaba que te boludeen por no saber algo. Contestá lo que te preguntan y listo o no contestes nada, nadie te obliga.

Disculpen si esto no debería ir acá pero como ya es bastante social las respuestas lo escribo públicamente.


Littlehorse

milya777, si puedes ser mas especifico en lo que puedes ver y lo que no, tal vez te podríamos ayudar mejor, también estaría bien que especifiques como estas intentando ver el contenido.

A grandes rasgos no tendrías que tener problemas en iniciar la depuración y luego ir a Debug>Windows>Locals
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Akai

Te sorprendería la cantidad de veces que nos pasa a TODOS caer en las situaciones más tontas.

Por poner el ejemplo, intentar usar el debugger en un programa, que no funcione, y después de haber perdido un buen rato pensando qué narices pasa, darte cuenta que esa no era la compilación de debugging. Por eso lo pregunté, no por darte la sensación de inferioridad, ni mucho menos, sino para que le echases un ojo a la config de debug por si las moscas. Mala suerte, supongo, si lo malinterpretaste.

Cambiando de tema, no se qué pinta ahora el tema de tu pregunta sobre html, pero que no te extrañe saber la enorme frecuencia con la que algunos ponen los ejemplos tal cual. Ejemplos sobre eso en el foro hay muchos. Aunque eso si, fallo mío por leer como leí la respuesta en aquel tema (que como ya he dicho, no se que pinta ahora).

Y por último, sobre el tema de la memoria. Es muy bonito sacar las cosas de contexto y mezclar posts que no son, ¿a qué si?

http://foro.elhacker.net/programacion_cc/mi_programa_no_libera_memoria_estoy_usando_heapdestroy_y_heapcreate-t322500.0.html

Post 1
Cita de: Akai
Si "pincha" tu servidor, es que algo falla. Manejas mal la memoria.

Recurrir a otro método que no sea delete para memoria solicitada con new, como tu mismo has experimentado, da resultados imprevisibles. Como ya dije, no puedes saber si new usa malloc por debajo, y tanto delete como heap destroy hacen uso de free.

Regla de oro:
Free what you malloc, delete what you new.

Post2:
Cita de: AkaiEn C o C++ no hay problemas de no se "libera" correctamente. Más bien, no la "liberas" correctamente. Fíjate que los destructores de tus clases llamen a destruir la memoria dinámica que generen etc etc etc.

También puedes probar a usar profilers como gprof, valgrind (su herramienta massif te da información de memoria, valgrind como tal de memory leaks) para er qué está pasando.

PD: no hace falta hacer doble post.

Igualito a lo que citaste, oiga. Hace falta volver a decir que todos hemos caído en fallos de ese estilo?

Cita de: milya777 en  6 Abril 2011, 22:23 PM
Ya que tenes el tiempo de responder cada inquietud, seguro tenes las ganas y el conocimiento ahorate de corregir cada estupidez que pongan los inexpertos como yo porque ninguno es groso y seguro cuando vos empezaste a aprender no te gustaba que te boludeen por no saber algo. Contestá lo que te preguntan y listo o no contestes nada, nadie te obliga.


Si no te gusta que te corrijan, entonces para qué preguntas por tus fallos?

Tampoco nadie te obliga a ti a postear nada en este foro. Si no quieres que te respondan, no lo pongas, búscalo por tu cuenta. Así de simple.

Y sinceramente, no se a qué viene esto ahora.

PD: Si tienes problemas con el inglés, un posible "parche" puede ser navegar con Chrome para aquellas páginas que estén en inglés, y activar la traducción automática.

milya777

Cita de: Littlehorse en  6 Abril 2011, 23:03 PM
milya777, si puedes ser mas especifico en lo que puedes ver y lo que no, tal vez te podríamos ayudar mejor, también estaría bien que especifiques como estas intentando ver el contenido.

A grandes rasgos no tendrías que tener problemas en iniciar la depuración y luego ir a Debug>Windows>Locals

Te explico, cuando hago un pedido a mi servidor lo que ingresa lo guardo en una variable buffer la misma se que contiene lo que se le envía porque hago un printf y me muestra en pantalla los datos correctos, pero en el debug la variable buffer me muestra basura, (una e y un punto por ejemplo), luego cuando parseo lo enviado por un cliente lo guardo en una estructura y los campos de la misma no me muestran nada (en el debug) cuando coloco el mouse por encima de esta variable me dice <puntero > erroneo 0x00... y otros datos. Si pongo para ver el texto que contiene no me muestra nada. Pero si se que dentro tiene información porque lo imprimo perfectamente. También estuve viendo las variables locales dentro de depurar->ventana y me muestra las que mencione antes como punteros erróneos y caracteres extraños y otras como "bytesrecibidos" que es un entero y lo muestra perfectamente.

Bueno gracias por responder.

Littlehorse

Difícil saber sin ver el código pero lo que te puedo decir es que cuando te aparece lo de puntero erróneo es porque el contenido del puntero definitivamente es erróneo, ya sea por que es un puntero sin inicializar, por algún error en el algoritmo, etc.

También podría ser que estés colocando los breakpoints en forma incorrecta. Los estas colocando correctamente? agrega un watch a la variable que te muestra basura y luego presiona shift + f11, mientras ves la ventana watch de la variable.

Me parece extraño porque dices que el contenido se imprime correctamente; dudo mucho que sea algún problema de la configuración del IDE, poco probable.

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

milya777

Akai, Pido disculpas por mi enojo innecesario de arriba.

Cita de: Littlehorse en  7 Abril 2011, 05:34 AM
Difícil saber sin ver el código pero lo que te puedo decir es que cuando te aparece lo de puntero erróneo es porque el contenido del puntero definitivamente es erróneo, ya sea por que es un puntero sin inicializar, por algún error en el algoritmo, etc.

También podría ser que estés colocando los breakpoints en forma incorrecta. Los estas colocando correctamente? agrega un watch a la variable que te muestra basura y luego presiona shift + f11, mientras ves la ventana watch de la variable.

Me parece extraño porque dices que el contenido se imprime correctamente; dudo mucho que sea algún problema de la configuración del IDE, poco probable.

Saludos
Si los breakpoints no creo que sean el problema, hice lo que me dijiste y dentro del buffer por ejemplo me aparece "Error30CX... no se puede evaluar la expresión" y las estructuras poseen todavía los caracteres extraños que había mencionado en cada uno de sus campos

Bueno Gracias!!