Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-09-2003
Athalon Athalon is offline
Miembro
 
Registrado: jul 2003
Ubicación: Barcelona
Posts: 31
Poder: 0
Athalon Va por buen camino
Question 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?.
Responder Con Cita
  #2  
Antiguo 19-09-2003
Avatar de Investment
Investment Investment is offline
Miembro
 
Registrado: may 2003
Posts: 378
Poder: 21
Investment Va por buen camino
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)
__________________
Saludos,
Peter Investment

Última edición por Investment fecha: 19-09-2003 a las 09:59:42.
Responder Con Cita
  #3  
Antiguo 19-09-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Para ampliar algo la respuesta del amigo Investment

F1 : ayuda
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
Responder Con Cita
  #4  
Antiguo 19-09-2003
Athalon Athalon is offline
Miembro
 
Registrado: jul 2003
Ubicación: Barcelona
Posts: 31
Poder: 0
Athalon Va por buen camino
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.
Responder Con Cita
  #5  
Antiguo 19-09-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 19-09-2003
Avatar de Investment
Investment Investment is offline
Miembro
 
Registrado: may 2003
Posts: 378
Poder: 21
Investment Va por buen camino
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;
__________________
Saludos,
Peter Investment
Responder Con Cita
  #7  
Antiguo 19-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 26-09-2003
Athalon Athalon is offline
Miembro
 
Registrado: jul 2003
Ubicación: Barcelona
Posts: 31
Poder: 0
Athalon Va por buen camino
Talking

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.
Responder Con Cita
  #9  
Antiguo 06-12-2007
JosepMiquel JosepMiquel is offline
Registrado
 
Registrado: nov 2007
Posts: 8
Poder: 0
JosepMiquel Va por buen camino
Unhappy

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 !!!! " a los ficheros *.pas de los componentes trivial?

Gracias de antemano.

Saludos.
Josep Miquel.
Responder Con Cita
  #10  
Antiguo 06-12-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por JosepMiquel Ver Mensaje
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 !!!! " 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
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #11  
Antiguo 06-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 06-12-2007
JosepMiquel JosepMiquel is offline
Registrado
 
Registrado: nov 2007
Posts: 8
Poder: 0
JosepMiquel Va por buen camino
Cita:
Empezado por dec Ver Mensaje
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:50:07.


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
Copyright 1996-2007 Club Delphi