28 de noviembre de 2017

Algunos consejos para el uso del depurador

Artículo original: Debugging Tip
http://rickschummer.com/blog/2006/05/debugging-tip.html
Autor: Rick Schummer
Traducido por: Ana María Bisbé York


En la Conferencia GLGDW hubo una sesión en panel sobre las mejores prácticas y consejos para depurar. Yo fui uno de los que debió participar; pero Doug Hennig necesitó mi PC para su presentación sobre desarrollo de aplicaciones verticales. Entonces, he pensado mostrar mis mejores prácticas por aquí, aunque creo que Dan Freeman las mencionó brevemente durante la sesión.

Un desarrollador Visual FoxPro puede realizar un gran trabajo de configuración del depurador al configurar la ventana Examinar, colocando exactamente los puntos de interrupción que necesita para una aplicación o módulo y seleccionando ciertos eventos para que sean corridos con traza. La configuración puede cambiar en dependencia de la aplicación o un módulo específico en una aplicación. Podemos eliminar expresiones desde la ventana Examinar y colocar en ella nuevas ya que estamos verificando varios módulos, podemos activar y desactivar puntos de ruptura, y podemos mover los eventos que estamos verificando hacia y desde la lista. Otra vía en la que podemos guardar la configuración exacta del módulo y llamarlo después la configuración sin necesidad de reconfigurar las expresiones o puntos de ruptura.

Esto se puede lograr sólo desde el marco de depuración (Debug frame) Utilizando el menú, puede seleccionar Archivo - Guardar Configuración ... para crear un archivo. Este archivo guarda un diálogo de forma predeterminada en la carpeta raíz de VFP. Para recuperar una configuración anterior Menú - Archivo - Cargar Configuración ... El contenido del archivo se guarda en texto ASCII. He aquí un ejemplo:

DBGCFGVERSION=4
WATCH=_screen
WATCH=set("deleted")
WATCH=set("path")
WATCH=thisform
WATCH=curdir()
WATCH=recno()
WATCH=eof()
WATCH=_vfp.ActiveProject
BPMESSAGE=OFF
BREAKPOINT BEGIN
TYPE=2
CLASS= 
LINE=0
EXPR=EOF("curReport")
DISABLED=0
EXACT=0
BREAKPOINT END

BREAKPOINT BEGIN
TYPE=3
CLASS= 
LINE=0
EXPR="MAIN"$PROGRAM()
DISABLED=1
EXACT=0
BREAKPOINT END

EVENTWINDOW=ON
EVENTFILE=
EVENTLIST BEGIN
Activate, Deactivate
EVENTLIST END

Puede manipular el contenido de forma segura con un editor de texto y recargar la configuración. Haga copias de este archivo si le preocupa perder esta configuración.

Lo que es realmente bueno es que estos archivos se pueden crear por programación. Vea que las expresiones de la ventana Examinar, son sencillamente líneas y pueden estar en cualquier lugar del archivo. Por tanto se pueden agregar sencillamente con esta sencilla línea de código:

STRTOFILE("WATCH=ALIAS()", "MyDebugSettings.DBG", 1)

Puede además organizar las expresiones en el archivo. Algo que me molesta de la ventana Examinar es que cada nueva expresión se agrega al final de la lista. Puede agregarlas al inicio utilizando el siguiente código:

lcFileContents = FILETOSTR("MyDebugSettings.DBG")
STRTOFILE("WATCH=ALIAS()" + CHR(13) + lcFileContents, "MyDebugSettings.DBG", 1)

Una vez que la agregue, tiene que cargar nuevamente el archivo de configuración. Una desventaja es que pierde las posibilidades que ofrece IntelliSense para la ventana Examinar.

Cada vez que comento a alguien sobre esta posibilidad, siempre hay quien dice que nunca escuchó de que existía.


No hay comentarios. :

Publicar un comentario

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.