Академический Документы
Профессиональный Документы
Культура Документы
es>
Arquitecto. Profesor Asociado de Tcnicas de Expresin Grfica, Universidad de Cantabria
(Santander, Espaa). Consultor en temas CAD y GIS. Miembro del Autodesk Developers
Network
Pgina WEB Personal: http://personales.unican.es/togoresr
Ayuda
Comentar Bloque
Formatear Seleccin
Comprobar Seleccin
Cargar Seleccin
Texto seleccionado
Punto de
Interrupcin
Aproximacin (Apropos)
Rastreo (Trace)
Inspeccionar
Seleccionar Ventana
Activar AutoCAD
Continuar (Continue)
Identificada
una
funcin
problemtica,
desearemos ver su funcionamiento paso a
paso. Introduciendo puntos de interrupcin se
detendr
la
ejecucin
del
programa
permitiendo comprobar su operacin en
detalle. Para ello disponemos del botn
Activar/Desactivar Punto de Interrupcin (ver
figura 4), la correspondiente opcin del men
Depurar (Debug) o simplemente la tecla de
funcin F9.
El programa se ejecutar hasta llegar al
primer punto de interrupcin. Al llegar ah, el
control pasa a la Consola y vemos resaltada la
expresin en la ventana del Editor.
Observemos que el smbolo (prompt) de la
consola aparece ahora numerado: _1_$ lo que
nos indica que estamos en un nuevo bucle de
evaluacin (read-eval-print loop) anidado bajo
el bucle superior (top-level) que es donde se
ha llamado al programa.
Figura 4. Barra de Herramientas
Depurar: control de la evaluacin en
Podemos controlar el paso a que se evalan
modo interrupcin, colocacin de
las expresiones mediante los botones Entrar
puntos de interrupcin y aadir
(Step Into) que se detiene en cada expresin
variables a inspeccionar.
anidada, Pasar al Siguiente (Step Over) que
evala toda la expresin resaltada, o Ir al
Final (Step Out) que busca el final de la
funcin donde el programa se ha detenido y
efecta la evaluacin hasta all.
Durante este estado de interrupcin es posible
evaluar expresiones en la Consola que nos den
informacin sobre el contenido de las variables
(tecleando el nombre de la variable y pulsando
INTRO) e incluso cambiar el contenido de las
mismas a partir de la evaluacin de cualquier
funcin en la consola o empleando el Servicio
de Smbolos (ver Figura 5).
Pulsando el botn Continuar (ver figura 4), se
pasar al prximo punto de interrupcin si lo
hubiera.
Figura 5. Ventana del Servicio de
Para ascender un nivel (ya que pueden darse
Smbolos
varios bucles de interrupcin anidados) se
pulsar el botn Descartar (Quit Current Level) y para regresar directamente al
nivel superior, el botn Restablecer (Reset to Top Level).
El programa entrar de manera automtica en un bucle de interrupcin al encontrar
un error en tiempo de ejecucin siempre que se encuentre activada la opcin
Interrupcin en Error (Break on Error) del men Depurar (Debug). En ese estado
tendremos acceso al contenido de todas las variables del entorno en que se ha
producido el error, pero no ser posible continuar la ejecucin.
Para conservar los puntos de interrupcin de una sesin de trabajo a otra ser
necesario Guardar Parmetros (Save Settings) desde el men Herramientas
(Tools). Los puntos de interrupcin se pierden al aplicar las operaciones de
formateo automtico.
Copiar en Rastreo/Registro
Ordenar Expresiones
Borrar Ventana
Aadir Inspeccin
La opcin de Animar
El men Depurar nos ofrece la opcin de Animar (Animate). Al activar esta opcin,
la ejecucin del programa se har toda en modo de interrupcin como si
pulsramos continuamente el botn Entrar (Step Into). El intervalo de tiempo entre
la evaluacin de cada expresin es configurable desde Herramientas>Opciones de
Entorno>Opciones Generales (ficha Diagnstico). Para detener la animacin puede
pulsarse la tecla PAUSA (BREAK) y de esa manera observar y cambiar si fuera
necesario el valor de las variables o colocar nuevos puntos de interrupcin. Al
encontrar un punto de interrupcin en modo Animar, deberemos usar los botones
Entrar, Pasar a Siguiente o Ir al Final para continuar la evaluacin. Tanto en uno
como en otro caso, la ejecucin en modo Animar se reinicia pulsando el botn
Continuar. El modo Animar es sumamente instructivo especialmente cuando en el
programa incluye bucles anidados.
Elemento
Contenido
Llamadas a funciones nivel (nombre-funcin {argumento 1} ... )
se presentan los argumentos realmente pasados a la funcin
Palabras clave
nivel :palabra_clave- (datos opcionales)
ocupan los niveles superior e inferior de la pila
Formas del nivel
acciones iniciadas al teclear una expresin en la Consola o al
superior
cargar un archivo o una seleccin.
se incluye cada vez que se encuentra una expresin lambda
Formas lambda
en el programa
Formas especiales
nivel (forma-funcin ...)
muestran las llamadas a funciones foreach y repeat. Los
argumentos no se muestran
Tabla 2. Elementos de la Pila de Rastreo
Palabras Clave
Una palabra clave indica una operacin especfica que tiene lugar en el entorno
VLISP. La Tabla 3 muestra algunas de las palabras clave que slo aparecern en el
fondo de la pila.
Palabra clave
:ACAD-REQUEST
:DCL-ACTION
:TOP-COMMAND
:USER-INPUT
Operacin
La llamada a la funcin que le sigue en la pila (ms arriba)
fue invocada desde la lnea de comandos de AutoCAD.
Accin llamada desde un cuadro de dilogo. A la palabra
clave le siguen dos cadenas: el nombre del dilogo y el
valor de la variable $KEY. Si un nmero, representa el valor
de la variable $REASON. El elemento que le sigue en la
casilla de arriba describe la llamada a funcin construida a
partir de la cadena asociada al botn de accin.
Funcin invocada al cargar un archivo o seleccin.
Tecleado en la Consola. La casilla de arriba muestra la
expresin resultante.
Entre las palabras clave ms frecuentes que pueden aparecer en la parte superior
de la pila estn las que muestra la Tabla 4.
Palabra clave
:BEFORE-EXP
Operacin
Indica que un programa se est depurando en modo
interrupcin. Indica que se ha entrado en una expresin.
:AFTER-EXP
Igual que el anterior, al salir de una expresin.
:ARQ-SUBR-CALLBACK Llamada normal de AutoCAD a una funcin definida en
VLISP.
:BREAK-POINT
Punto de interrupcin especificado por el usuario.
:ERROR-BREAK
Error en tiempo de ejecucin. La opcin Mostrar Mensaje
(Show Message) del men contextual muestra mensajes
de error ms especficos.
:FUNCTION-ENTRY
Interrupcin al entrar en una funcin, el elemento
siguiente muestra la llamada a dicha funcin
:KBD-BREAK
Se ha pulsado la tecla PAUSA.
:READ-ERROR
Error durante una operacin de lectura.
:SYNTAX-ERROR
Se ha detectado una sintaxis AutoLISP incorrecta
Tabla 4. Palabras clave (extremo superior de la Pila)
Rastreo de Errores
Cuando se produce un error, el estado de la Pila de Rastreo se copia
automticamente a la ventana de Rastreo de Errores (Error Trace), a la que se
accede desde el men Ver>Rastreo de Errores (View>Error Trace).
Como copia que es de la Pila de Rastreo, todo lo explicado sobre sta se aplica al
Rastreo de Errores. La nica diferencia es la siguiente:
Tanto en la ventana de la Pila de Rastreo como la de Rastreo de Errores hay dos
botones. El de la izquierda sirve para Renovar (Refresh) el contenido de la ventana.
Cuando se pulsa este botn despus de salir de un bucle de interrupcin pasando al
bucle de nivel superior, el Renovar la Pila de Rastreo cambiar su contenido para
reflejar la situacin actual, mientras que Renovar el Rastreo de Errores no cambiar
su contenido a menos que se haya producido un nuevo error (ver figura 8).
Conclusiones
Hemos visto las principales herramientas de que dispone el IDE Visual LISP para la
depuracin de errores. No debemos olvidar las otras ayudas disponibles desde el
mismo Editor, tales como la sintaxis coloreada (basta ver un nombre de funcin
que no se coloree de azul para saber que est mal escrito), la deteccin del cierre
de los parntesis, la revisin de sintaxis, el formateo automtico o la introduccin
de comentarios al cierre de las expresiones. Sin olvidar la comprobacin ulterior
que se realiza al momento de compilar la funcin que ya comentamos en nuestro
artculo del mes pasado. Con todo ello disponemos de un entorno poderoso para el
desarrollo de las aplicaciones ms complejas.
Nota: El cdigo fuente de los artculos publicados puede descargarse de:
http://personales.unican.es/togoresr/cadxpress