Unofficial Content

DebuGX V2.0 (has been released!exclaim)

DebuGX V2.0 Beta (New Feature on Build 83
Remote DebuGX. This function allows a remote execution and a local execution control.
Scope : Web

Description

Utilización del DebuGx :

  Los  objetos  que  se  desean  debaguear,:
 

  • 1 Se debe especificar el Objeto como normalmente se hace desde Gx, pero sin generar (Ver Nota 1).
  • 2 Ir a la pestaña Tools/Specify whit DebuGx , lo que abrirá el especificador del DebuGx , el cual incluye automáticamente los objetos de esa KB que detecta que están disponibles para "especificar para "debaguear". Seleccionar los objetos deseados y OK.
  • 3 Generar los objetos. Esto se hace normalmente desde Gx
  • 4 Ir a la pestaña Tools/Launch debug console, lo que abrirá el DebuGx


Una vez realizados estos paso, los objetos estan listos para debugerse, sólo se debe correr el programa (F5 desde GX) y cuando se ejecute el objeto a debugear, la consola DebuGx pondrá en pausa automáticamente el programa y nos permitirá empezar a ver el funcionamiento del objeto.

Nota 1: Si el objeto ya esta especificado y generado anteriormente, para que luego el DebuGx tome estos objetos, se debe seleccionar la opción "Force Generation" pero SIN seleccionar Specify & Generate (destildado).

Aclaraciones: En mi caso particular, cuando utilicé el DebuGx por primera vez, la consola, no
reconocía la ejecución de el programa luego de F5.
Esto es similar a cuado uno especifica algún Objeto y el Gx no reconoce el cambio (no lo impacta). Para solucionar esto, vasto con compilar el Exe.

Consultas y comentarios: lukasleiva@ecraft.com.ar; lukaslei@hotmail.com

Home Page

ABC Debug

DebuGX trabaja sobre la especificación de Genexus, por lo tanto para que un objeto este preparado para ser debugueado es necesario cumplir los siguientes pasos:
- Especificar el objeto ( Sin generar)
- Procesar el objeto por el Debug Specifier
- Generar el objeto.
- Levantar la Consola de debug "Tools / Launch DebuGx Console"
- Ejecutar el objeto ( desde el punto de inicio habitual de la aplicación: ej. F5 de Genexus, Menú inicial de la aplicación, etc )

IMPORTANTE: Cuando un objeto es debugueado, el fuente generado tiene una performance en ejecución muy inferior a la que tendría el mismo en una generacion sin debug. Por este motivo, cuando ya no es necesario debuguear un objeto, el mismo debe ser re-especificado y generado por GeneXus sin la intervención del DebuGX Specifier.

1- Especificar el o los objetos a debuguear. ( Especificar sin generar.)

2- Especificar para debug
Luego de la especificación genexus, es necesario especificar para Debug. 


   Ejecutar "Specify with DebuGx" desde el menú Tools de Genexus .

El Debug Specifier despliega la lista de objetos especificados, y pendientes de generación.
Seleccionar los objetos a debuguear y presionar el botón "OK".

Una vez especificado el objeto para debug, el mismo esta preparado para ser generado por el generador Genexus correspondiente.

3- Generar
Generar el/los Objeto/s desde el botón "Generate" desde el Specification Report.
( Compilar el/los objeto/s si fuera necesario )


4- Ejecutar la Consola de Debug
Ejecutar la consola de debug desde el menú tools de Genexus "Tools / Launch DebuGX Console".
Una vez levantada la consola de debug, el ambiente esta preparado para monitorear la ejecución de los objetos.

5- Ejecutar la aplicación desde su punto de inicio habitual, y esperar la ejecución del objeto a debuguear.
En el momento en que comience la ejecución del objeto a debuguear, en la consola de debug se podrá ver el punto de inicio del / los objeto/s "debugueables", quedando automáticamente en "pausa" sobre la primer línea de código Genexus.
En este momento tenemos el control de la ejecución, sobre la consola de Debug.

Nota: el objeto a ser debugueado, puede estar siendo ejecutado en cualquier arquitectura, lo que significa que NO es necesario que el objeto a debuguear este corriendo en la misma PC donde se ejecuta la Consola de Debug. ( ej. web services / arquitecturas 3 capas / etc )

DebuGx Console

La Consola de debug se ejecuta desde el menu tools / Launch DebuGX Console de Genexus.
Esta consola esta compuesta por las siguientes secciones:

Execution Control:
Run:
   Este botón libera la ejecución hasta el próximo BreakPoint.
Pause:
   Este botón pausa la ejecución.
Execute Step:
   Este botón permite ejecutar línea por línea de código Genexus.
Step Back:
   Este botón permite recorrer los estados de la ejecución hacia atrás. ( mientras el objeto se encuentra en pausa )
Step Forward:
   Este botón permite recorrer los estados de la ejecución off-line hacia adelante.

Object Browser:
En esta ventana se pueden visualizar todos los objetos "debugueables".
Por cada objeto se pueden ver todos sus componentes ( Variables , atributos y vectores )

Por cada objeto pueden visualizarse las variables, vectores y Atributos agrupados por tablas y Niveles de navegación:
Haciendo doble clic sobre variables o atributos, los mismos quedan disponibles en la watch list para el monitoreo de sus valores en ejecución.


Watch List:
La lista de monitoreo permite visualizar los valores de las variables y atributos en cada paso de la ejecución.

Source Code Browser:
En tiempo de ejecución, en el object browser puede verse el tipo y nombre del objeto y el host donde esta corriendo asi como la línea de código próxima a ejecutarse.

Sobre cada línea de código, haciendo clic derecho se despliega un menú con las siguientes opciones:

  • Show PrintBlock ( si la línea de código corresponde a un bloque de impresión )
  • Insert BreakPoint / Remove BreakPoint ( para insertar puntos de parada de la ejecución)

Durante la ejecución, en estado de pausa, pueden verse los valores de los atributos y variables posicionando el mouse sobre el código fuente.

Adding Break-points:
Se pueden insertar puntos de parada de la ejecución, sobre la visualización del código fuente haciendo doble clic sobre la línea de código ó haciendo clic derecho y seleccionando la opción "Insert BreakPoint".

Off-line execution:
Cuando la ejecución se encuentra en pausa, se pude cambiar el curso de la misma hacia atrás. Esto no significa cambiar el curso de la ejecución sino visualizar el estado de las variables , vectores y atributos en pasos anteriores.

Save / Load Steps:
Luego de una ejecución, se puede guardar en un archivo todos los pasos para su posterior análisis.
Cada línea de código Genexus genera información asociada a un paso de ejecución, el conjunto de pasos ejecutados y monitoreados puede ser guardado para luego monitorearse en forma off-line simulando una ejecución y teniendo disponibles todos los valores de los objetos ( atributos y variables).

Last update: April 2024 | © GeneXus. All rights reserved. GeneXus Powered by Globant