Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Debug de Delphi (https://www.clubdelphi.com/foros/showthread.php?t=3771)

Athalon 19-09-2003 09:15:25

Debug de Delphi
 
Buenos dias,

Me encuentro perdido con el debug de delphi ya que no me deja muchas posibilidades de testeo o no se utilizarlas, me gustaria que me explicaran si se puede cambiar el valor de variables cuando se esta en el debug, interrumpir el programa (que no sea el boton de pause del delphi) y que se me quede en la línea donde he interrumpido y si hay alguna manera rápida sin que pare el programa de sacar mensajes informando de por donde va el programa y con valores de variables, seria el equivalente en Visual Basic de msg box.

En pocas palabras, profundizar en el debug y su correcta utilización o ¿simplemente no tiene las posibilidades que comento?.

Investment 19-09-2003 09:38:35

Hola Athalon:

Cita:

si se puede cambiar el valor de variables
Cuando estas haciendo una ejecucion de tu programa con el debug, puedes cambiar el valor de las variables tecleando Ctrl+F7

Te aparecerá una ventana de Evaluate/modify donde puedes hacer lo que dices.

Cita:

alguna manera rápida sin que pare el programa de sacar mensajes informando de por donde va el programa y con valores de variables, seria el equivalente en Visual Basic de msg box.
El equivalente en Delphi seria en ShowMessage('Texto')
Y si lo que quieres es ver los valores de tus variables, campos de tablas,... puedes hacerlo sacando la ventana de WachtList (Crtl+F5) en la cual puedes añadir los valores que quieres ver. (Necesitas tener el programa parado con un breakPoint)

__cadetill 19-09-2003 09:55:29

Para ampliar algo la respuesta del amigo Investment

F1 : ayuda :D
F4 : ejecutar hasta llegar al punto donde se encuentra el cursor en ese momento (la linea)
F5 : establecer BreakPoint (punto de parada de una app). También lo puedes establecer clicando en la parte gris de la izquierda del editor de texto. Puedes visualizar toda la lista de BreakPoints por opción de menú o con CTRL+ALT+B
F7 : ejecutar paso a paso entrando en procedures y funciones
F8 : ejecutar paso a paso SIN entrar en procedures y funciones
CTRL+F5 : añade la variable seleccionada al Watch List. También puedes ver el valor de una variable posicionando el ratón encima suyo.
CTRL+F7 : evaluar/modificar

Bueno, seguro que me dejo algo, pero ahora no recuerdo de más ;)

Athalon 19-09-2003 12:43:31

Hola de Nuevo y gracias por la información,

Pero el ShowMessage no me sirve ya que para la aplicación cuando sale el mensaje y se le ha de aceptar para continuar, un tema que tambien me interesa mucho y no me ha quedado claro es el tema de parar la aplicación y que el cursor se quede en la instrucción que se estaba ejecutando, ¿como puedo hacer eso?.

Y continuo con lo del mensaje, alguna opción que me muestre los valores mientras se ejecuta el programa pero sin pararlo.

Y donde puedo encontrar más información respecto al Debug de delphi.

Gracias de nuevo.

__cadetill 19-09-2003 13:24:07

Cita:

Posteado originalmente por Athalon
Y continuo con lo del mensaje, alguna opción que me muestre los valores mientras se ejecuta el programa pero sin pararlo.
que yo sepa, sin parar la ejecución de la aplicación, no la hay

Cita:

Posteado originalmente por Athalon
Y donde puedo encontrar más información respecto al Debug de delphi.
En la propia ayuda de Delphi, mira la entrada Debug commands

Investment 19-09-2003 13:27:00

Cita:

Posteado originalmente por Athalon
Y continuo con lo del mensaje, alguna opción que me muestre los valores mientras se ejecuta el programa pero sin pararlo.
Una posible solucion es crearte en tu formulario labels a las que les pongas el valor de las variables que queires ver.

Label1.caption:= 'Valor de la variable XXX= ' + XXX;

delphi.com.ar 19-09-2003 16:01:10

Primero tienes que tener MUY EN CUENTA que VB es un lenguaje interpretado, y como ventaja: uno puede modificar el código que se está ejecutando, cambiar la línea de ejecución del programa.... como desventaja: el producto final en mucho mas lento por culpa de la interpretación, no puedes ver el código que interpreta el procesador, necesitas infinidad de librerías para poder ejecutar el EXE compilado en un equipo...

Todo programador que pasa de VB a Delphi al comienzo le parece chocante el Debugger, simplemente porque el de VB es MUY FLEXIBLE... pero con el tiempo te darás cuenta que se puede programar y debuggear una aplicación con la misma facilidad. Te recomiendo utilizar breakpoints para que la aplicación pare donde te parece que puede estar el problema, y luego seguir la ejecución paso a paso.

Saludos!

Athalon 26-09-2003 12:24:23

Gracias a tod@s por vuestra ayuda pero ya he encontrado algunas cosas que me seran útiles como el OutPutDebugString.

Gracias a tod@s y saludos.

JosepMiquel 06-12-2007 20:23:27

Buenas tardes a todos y gracias anticipadas por sus contestaciones.
El caso es que el problema que expongo no he encontrado ninguna solucion mediante la busqueda en el foro y por esa razon la expongo en este hilo ya que el problema lo tengo con en debuger.

Les comento. Recientemente he incluido los componentes del trivial 601, del cual utilizo varios de ellos. La cuestión es que desearia que cuando debugueo una aplicación al efectuar un breakpoint, cuando se ejecuta una instruccion que hace referencia a un componente del trivial, me abre su correspondiente *.pas con lo que me tengo que "tragar" todas las instrucciones hasta que sale de ese *.pas y vuelve a entrar a mi aplicación.

¿como pudo evitar esas "visitas !!!! :mad: " a los ficheros *.pas de los componentes trivial?

Gracias de antemano.

Saludos.
Josep Miquel.

egostar 06-12-2007 20:27:05

Cita:

Empezado por JosepMiquel (Mensaje 251012)
Buenas tardes a todos y gracias anticipadas por sus contestaciones.
El caso es que el problema que expongo no he encontrado ninguna solucion mediante la busqueda en el foro y por esa razon la expongo en este hilo ya que el problema lo tengo con en debuger.

Les comento. Recientemente he incluido los componentes del trivial 601, del cual utilizo varios de ellos. La cuestión es que desearia que cuando debugueo una aplicación al efectuar un breakpoint, cuando se ejecuta una instruccion que hace referencia a un componente del trivial, me abre su correspondiente *.pas con lo que me tengo que "tragar" todas las instrucciones hasta que sale de ese *.pas y vuelve a entrar a mi aplicación.

¿como pudo evitar esas "visitas !!!! :mad: " a los ficheros *.pas de los componentes trivial?

Gracias de antemano.

Saludos.
Josep Miquel.

F4 para iniciar en la linea que deseas
F7 para pasar linea por linea entrando a sus respectivas rutinas
F8 para pasar a la siguiente linea sin entrar a su respectiva rutina.

Ayer en el evento de codegear, se hablo de eso precisamente y expuesto por un miembro del club, (jachguate)

Salud OS

dec 06-12-2007 20:39:48

Hola,

A ver si ponen el contenido del "CodeGear Day" para poder revisarlo, porque, justamente, la ponencia que más me interesó fue la de Juan Antonio, ¡y me quedé dormido! No por culpa de Juan Antonio, obviamente: todos nos hemos quedado dormidos alguna vez, fruto del cansancio.

Bueno. A lo que iba. Si no estoy equivocado (y ya te han respondido, así que, probablemente lo esté), recuerdo que se habló también de las opciones del "debugger" dentro de las opciones de compilación (compiler) de nuestro proyecto. Si no estoy equivocado, puedes desmarcar la casilla "Use debug DCUs", si está marcada.

De ese modo se evita entrar en los "DCUs" de terceros, aunque, creo que esto no está bien dicho así, desde luego, acabo de comprobar cómo desmarcando dicha casilla no se entra en el código de la VCL, por ejemplo, sino que se sigue la ejecución de nuestro programa "saltándose" la VCL, en este caso, pero, tal vez también otros componentes de terceros...

A ver si Juan Antonio y/o alguien más puede concretar un poco esto, aunque, espero que pronto se publique el material susomentado para repasarlo ya en condiciones, o sea, sin que me caiga de sueño... ;)

JosepMiquel 06-12-2007 20:58:00

Cita:

Empezado por dec (Mensaje 251021)
Hola,

A ver si ponen el contenido del "CodeGear Day" para poder revisarlo, porque, justamente, la ponencia que más me interesó fue la de Juan Antonio, ¡y me quedé dormido! No por culpa de Juan Antonio, obviamente: todos nos hemos quedado dormidos alguna vez, fruto del cansancio.

Bueno. A lo que iba. Si no estoy equivocado (y ya te han respondido, así que, probablemente lo esté), recuerdo que se habló también de las opciones del "debugger" dentro de las opciones de compilación (compiler) de nuestro proyecto. Si no estoy equivocado, puedes desmarcar la casilla "Use debug DCUs", si está marcada.

De ese modo se evita entrar en los "DCUs" de terceros, aunque, creo que esto no está bien dicho así, desde luego, acabo de comprobar cómo desmarcando dicha casilla no se entra en el código de la VCL, por ejemplo, sino que se sigue la ejecución de nuestro programa "saltándose" la VCL, en este caso, pero, tal vez también otros componentes de terceros...

A ver si Juan Antonio y/o alguien más puede concretar un poco esto, aunque, espero que pronto se publique el material susomentado para repasarlo ya en condiciones, o sea, sin que me caiga de sueño... ;)

Hola David, y tambien a egostar por su respuesta. Gracias.

Ya tenia desmarcada la opción "Use debug DCUs", por lo que continuo teniendo el problema. No creo que este mal instalado el paquete de las Trivial 601, ya que las instale siguiendo las instrucciones que llevaba el .txt.

¿Alguna sugerencia más? Gracias.

Josep Miquel.


La franja horaria es GMT +2. Ahora son las 09:02:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi