4D v16.3

Panel de evaluación de métodos

Inicio

 
4D v16.3
Panel de evaluación de métodos

Panel de evaluación de métodos  


 

 

El  muestra el código fuente del método que está siendo depurado.

Si el método es demasiado largo para el área de texto, puede desplazarse para ver otras partes del método.
Al mover el puntero del ratón sobre cualquier expresión que pueda ser evaluada (campo, variable, puntero, array,...) hará que aparezca un Mensaje mostrando el valor actual del objeto o expresión y su tipo declarado. Por ejemplo:


Aparece un mensaje porque el puntero del ratón se ubica sobre la variable pTable, según el mensaje, es un puntero a la tabla [Customers].

  • Igualmente puede seleccionar una porción de texto en el área de visualización del código en ejecución. En este caso, cuando el cursor se ubica sobre el texto seleccionado, un mensaje muestra el valor de la selección:

Cuando hace clic en un nombre de variable o campo, se selecciona automáticamente.

Consejo: es posible copiar toda expresión seleccionada (que pueda evaluarse) en el Panel de evaluación de métodos al Panel de evaluación. Puede hacerlo de estas maneras: 

  • simplemente arrastrando y soltando: haga clic en el texto seleccionado, arrástrelo y suéltelo en el área de evaluación.
  • utilizando la combinación de teclas Ctrl+D (Windows) o comando+D (Mac OS).

Una flecha amarilla al margen izquierdo del panel de evaluación de métodos (ver la imagen anterior) indica cual es la próxima línea a ejecutar. Esta flecha se llama contador del programa. El contador del programa siempre indica la línea que está a punto de ser ejecutada.

Por propósitos de depuración, puede cambiar el contador del programa para el método que se encuentra en la parte superior del canal de llamada (el método que se está ejecutando). Para hacer esto, simplemente haga clic y arrastre la flecha amarilla verticalmente, hacia la línea que quiera.

Advertencia: ¡Utilice esta característica con cuidado!

Mover el contador del programa hacia adelante NO significa que el depurador ejecute rápidamente las líneas por las que está pasando. De la misma forma, mover el contador del programa hacia atrás NO significa que el depurador reverse el efecto de las líneas que ya han sido ejecutadas.

Al mover el contador del programa, usted indica al depurador simplemente que “continúe la depuración o ejecución desde este punto.” Todos los parámetros, campos, variables, etc. actuales no se ven afectados por el desplazamiento.

Este es un ejemplo de desplazamiento del contador del programa. Supongamos que está depurando el siguiente código:

  ` ...
 If(Esta condición)
    HACER ALGO
 Else
    HACER ALGO MÁS
 End if
  ` ...

El contador del programa está ubicado en la línea If (Esta condición). Usted avanza un paso y ve que el contador del programa se mueve hacia la línea HACER ALGO MÁS. Usted quería ejecutar la otra alternativa. En este caso, y en la medida en que la expresión Esta condición no efectúa operaciones que afecten las etapas siguientes de su prueba, mueva el contador del programa a la línea HACER ALGO. Ahora puede continuar depurando la parte del código que le interesa.

En el proceso de depuración, usted podría necesitar saltarse algunas partes del código. El depurador le ofrece varios métodos para ejecutar código hasta cierto punto:

  • Mientras ejecuta paso a paso, puede hacer clic en el botón Ejecutar paso a paso en lugar del botón Ejecutar y entrar. Esto es útil cuando usted no quiere entrar en posibles subrutinas o funciones llamadas en la línea del contador del programa.
  • Si por error entró a una subrutina, puede ejecutarla e ir directamente al método que la llamó haciendo clic en el botón Ejecutar y salir.
  • Si en algún punto tiene una llamada al comando TRACE, puede hacer clic en el botón Reanudar, el cual reasume la ejecución hasta la llamada al comando.

Por ejemplo, imagine que está ejecutando el siguiente código. El contador del programa está ubicado en la línea ALL RECORDS([EstaTabla]):

  ` ...
 ALL RECORDS([EstaTabla])
 $vrResult:=0
 For($vlRegistro;1;Records in selection([EstaTabla]))
    $vrResult:=Esta Funcion([EstaTabla]))
    NEXT RECORD([EstaTabla])
 End for
 If($vrResult>=$vrLimitValor)
  ` ...

Su meta es evaluar el valor de $vrResult después de que se haya completado el bucle For. Como toma bastante tiempo alcanzar este punto en su código, usted no quiere abortar la ejecución actual, luego edite el método con el fin de insertar un llamada a TRACE antes de la línea If ($vrResult....

Una solución es ir paso a paso a través del bucle, sin embargo, si la tabla [EstaTabla] contiene muchos registros, usted va a gastar todo un día en esta operación. En este tipo de situación, el depurador le ofrece puntos de interrupción. Puede insertar puntos de interrupción haciendo clic en el margen izquierdo del panel de evaluación de métodos.

Por ejemplo:
Usted hace clic en el margen izquierdo del panel de evaluación de métodos a nivel de la línea If ($vrResult...:

Esto inserta un punto de interrupción para la línea. El punto de interrupción se indica por un punto rojo. Luego haga clic en el botón Reanudar.

Esto retoma la ejecución normal hasta la línea marcada con el punto de interrupción. Esa línea no se ejecuta, usted vuelve al modo depuración. En este ejemplo, todo el bucle ha sido ejecutado normalmente. Luego cuando se alcanza el punto de interrupción, usted sólo necesita mover el botón del ratón sobre $vrResult para evaluar su valor en el punto de salida del bucle.

Colocar un punto de interrupción más allá del contador del programa y hacer clic en el botón Reanudar le permite evitar depurar partes del método.

Nota: también puede definir puntos de interrupción directamente en el editor de métodos de 4D. Consulte la sección Puntos de interrupción.

Una vez añada un punto de interrupción, permanece asociado al método. Incluso si sale de la base y entra nuevamente más tarde, el punto de interrupción estará ahí.

Hay dos formas de eliminar un punto de interrupción persistente:

  • Si usted terminó de utilizarlo, simplemente haga clic en el punto rojo, el punto de interrupción desaparece.
  • Si no ha terminado de utilizarlo totalmente, podría querer conservarlo. Puede desactivarlo temporalmente editándolo. Esto se explica en la sección Puntos de interrupción.

El menú contextual de Panel de evaluación de métodos da acceso a varias funciones que son útiles durante la ejecución de métodos en modo de Rastreo:

  • Ir a definición: permite acceder a la definición del objeto seleccionado. Este comando está disponible para los siguientes objetos:
    • Métodos proyecto: muestra el contenido del método en una nueva ventana del editor de métodos.
    • Campos: muestra las propiedades del campo en el inspector de la ventana de estructura,
    • Tablas: muestra las propiedades de la tabla en el inspector de la ventana de la estructura,
    • Formularios: la forma Muestra en el editor de formularios,
    • Variables (local, proceso, interproceso o parámetro $): muestra la línea de declaración de la variable en el método actual o en los métodos compilador.
  • Buscar referencias...(también disponible en el editor de métodos): busca todos los objetos de la base (métodos y formularios) en la que el elemento actual es referenciado. El elemento actual es el elemento seleccionado o el elemento en el cual se encuentra el cursor. Este puede ser el nombre de un campo, variable, comando, cadena, etc. El resultado de la búsqueda se muestra en una nueva ventana de resultados estándar.
  • Ir al cursor: ejecuta la instrucciones entre el contador de programa (flecha amarilla) y la línea seleccionada del método (donde se encuentra el cursor).
  • Definir siguiente instrucción: mueve el contador del programa hasta la línea seleccionada sin ejecutar esta línea o las líneas intermedias. La línea designada sólo se ejecuta si el usuario hace clic en uno de los botones de ejecución.
  • Alternar punto de interrupción (también disponible en el editor de métodos): permite alternativamente insertar o eliminar el punto de interrupción correspondiente a la línea seleccionada. Esta función modifica el punto de interrupción permanente: por ejemplo, si elimina un punto de interrupción en el depurador, ya no aparece en el método original.
  • Editar punto de interrupción (también disponible en el editor de métodos): muestra la caja de diálogo de definición de Propiedades del punto de interrupción. Esta función modifica el punto de interrupción permanente.



Ver también 

Depurador
Panel de evaluación
Panel de expresión
Panel del canal de llamada
Puntos de interrupción

 
PROPIEDADES 

Producto: 4D
Tema: Depurador

 
HISTORIA 

 
PALABRAS CLAVES 

debugger source code pane

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)