Depuración de código Tcl/Tk

Documentos relacionados
BREVE DESCRIPCIÓN DEL ENTORNO DE PROGRAMACIÓN DE VISUAL LISP

Microsoft Office Word

INSTALACIÓN PROGRAMA FACILAUTO FORMACIÓN

Ficha técnica. Visual Basic 6.0

Conocer la nueva interfaz de Word 2010

TECNOLOGÍAS DE LA INFORMACIÓN Y DE LA COMUNICACIÓN UD 3: SISTEMAS OPERATIVOS 1. DEFINICIÓN Y COMPONENTES DE UN SITEMA OPERATIVO.

OBJETIVOS ÍNDICE MÓDULO 1: VISUAL BASIC 6.0 PARTE 1ª

Manual de instalación de Demonio

Copyright Arsys Internet S.L. Campañas Online Manual de Resellers

UNIVERSIDAD NACIONAL DE INGENIERÍA Departamento de Lenguajes y Simulación Guía de laboratorio I

MANUAL PARA GENERAR CESANTIAS PARCIALES

CAPÍTULO III MENÚS DEL TURBO PASCAL. File Edit Search Run Compile Debug Tools Options Windows Help [ ] NONAME.PAS

SISTEMAS DE INSTRUMENTACIÓN ELECTRÓNICA AVANZADA. Ejercicios de Introducción a LabVIEW

Cómo depurar código Python con PyScripter

Guía de uso del programa AVR-Studio

INSTITUCION EDUCATIVA MANUEL ANGEL ANACHURY AREA: TECNOLOGIA E INFORMATICA

Entorno de Programación Visual C++ 6.0

Unidad 1. Mi primer documento (I)

Dpto. Lenguajes y Ciencias de la Computación E.T.S.I. Telecomunicación. Laboratorio de Programación Uso del depurador en Dev-C++

Información adicional para el usuario Fiery EXP250 Color Server, versión 1.0 para la DocuColor 240/250

VISUAL BASIC 6.0. Objetivos: Contenidos. TEMA 1. Introducción a Visual Basic 6.0. Conceptos de Programación. Introducción a Visual Basic

índice MÓDULO 1: Introducción a Visual Basic 6.0 MÓDULO 2: Fundamentos de programación TEMA 1. Introducción a Visual Basic 6.0

6. Se abre el cuadro de diálogo Insertar Imagen. 7. Buscar dentro del equipo la imagen Marca de agua, archivo previamente guardado en su PC.

OPEN OFFICE: Unidad 3

Funciones remotas. Supervisión y control. Supervisión de alumnos. file://c:\documents and Settings\robertob\Configuración local\temp\~hhae55.

TECNOLOGÍA DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. Entorno dreamweaver DESARROLLO DE APLICACIONES WEB I

ENSAMBLADO DEL PROGRAMA

UNIDAD 1. writer PRIMEROS PASOS. CURSO: LibreOffice

MANEJO DE LAS HOJAS DE CÁLCULO

ACTUALIZACION DEL FIRMWARE. DESCRIPCIÓN DEL PROCEDIMIENTO PARA LOS EQUIPOS PROLINK PREMIUM Y PRODIG-5 TV EXPLORER

Tutorial Oracle SQL Developer 1.2.1

MANUAL PARA GENERAR NÓMINA VACACIONES

Manual de Instalación

Práctica 1. Entorno del Sistema Operativo Windows XP

Cosmos WorkShop. Software de actualización firmware Cosmos v2.2 rev5 Julio 2012

Bienvenido al módulo de formación sobre el funcionamiento del panel de control del ACS800.

PROF. ANGEL MENDEZ YALLI.

Esta guía le ayudará a dar los primeros pasos en su aplicación Productor y así poder evaluar su funcionamiento.

WINDOWS 7 ESCRITORIO Fecha y hora. VENTANAS

El entorno de Word 2016

El teclado está dividido en 4 bloques que puedes ver en la imagen de más abajo.

Seleccionamos el programa Excel. Nos aparece la pantalla del programa

Curso Completo de Visual Basic 6.0

Elementos de la pantalla inicial

Introducción Excel 2007

Organización de la información en disco: archivos y carpetas

Barra de herramientas estándar. Barra de herramientas principales. Barra de herramientas de cámara. Barra de herramientas "Estilo de cara"

Funciones básicas del depurador

TRABAJO DE INVESTIGACION. 1 de oct. INFORMATICA. NOMBRE: Edwin Muñoz Mendoza. Ciclo: Administración y Gestión

La ventana del Explorador de Windows 7

Práctica 0: Entorno de Windows

Práctica de laboratorio: Configuración del navegador en Windows 8

Writer (Procesador de textos). Una vez arrancado el programa nos aparecerá la ventana del procesador de textos Writer.

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Manual de usuario de Kiva

EL ENTORNO DEL EDITOR

Aplicación de Uvame para Facultativos Instalación y configuración

Manual MSOFT versión 2.60

Una vez introducidos el identificador de usuario (NIF) y la contraseña, se mostrará la pantalla de Bienvenida con todas las opciones.

Generalidades de Windows XP

Práctica B: Cree su primera aplicación

INTRODUCCIÓN A SAP. Último cambio el: 17/10/a 8:32. Nombre de Archivo: Introducción a SAP Último cambio por: Equipo FI-CO. 1 de 12

En la parte inferior de la pantalla se podrá ver el estado de la última copia y la fecha y hora actual.

SISTEMA OPEATIVO DEFINICIÓN

PARTE 1: Introducción

MANUAL DE USUARIO PARA INGRESOS EN CARTERA

PASO 1. Para ingresar debe registrarse con un usuario y su clave.

Instalación de MySQL, PHP y Servidor Apache en Windows

Iniciar AutoCAD 2012 IMPORTANTE

El entorno de desarrollo eclipse 3.0.1

Netbeans Introducción

GESTOR TARJETA DE MOVIMIENTO EQUINA. Manual de Usuario

ACTEON Manual de Usuario

Capítulo 9 Archivos de sintaxis

CAPÍTULO 4 MANUAL DE USUARIO. 4.1 Introducción. 4.2 Interfaz de Usuario

Manual de la central CC-132F Software v. 2.60

Clase 1 Excel

1. INTRODUCCION. Logger 2

Unidad 1. Introducción. Elementos de Excel

Funciones de Network Assistant

Manual de usuario MetaTrader 4 TraderNovo:

ATAJOS DEL TECLADO EN WINDOWS

CashDroLink - Manual de instalación y uso

Transcripción:

Herramientas relacionadas con GiD Depuración de código Tcl/Tk La depuración de los errores de un programa típicamente ocupa un tiempo muy superior al de la propia escritura inicial del código. El uso de una herramienta apropiada para encontrar los defectos es por tanto fundamental, y uno de los puntos más débiles que ha tenido hasta ahora el lenguaje Tcl. Por otra parte, una herramienta que durante la propia escritura del código ayuda a detectar fallos (comandos mal escritos, llaves que no cierran, etc) se convierte en un aliado insustituible para el desarrollador de programas. Para avanzar en estos aspectos se ha desarrollado una herramienta lo más amigable posible: RamDebugger. 106

TABLA DE CONTENIDOS 1. DEPURACIÓN MANUAL CLÁSICA...108 2. RAMDEBUGGER...108 2.1. DESCRIPCIÓN DE LA HERRAMIENTA...108 2.2. DEPURACIÓN LOCAL...110 2.3. DEPURACIÓN REMOTA...111 107

1. DEPURACIÓN MANUAL CLÁSICA Para realizar la depuración de errores ( debug ) de un programa en Tcl, pueden usarse varias técnicas: La técnica más básica, pero en ocasiones necesaria, es imprimir el valor de las variables en un fichero. En el fichero scripts/configureprogram.tcl se puede asignar el valor debug a la variable global GidPriv(Configuration) (por defecto tiene el valor release ). Entonces se pueden imprimir mensajes en un fichero DebugGiDTcl.log ubicado en el directorio tmp del sistema. Para imprimir un mensaje puede usarse el procedimiento: DebugPrint $texto Ó bien otro procedimiento algo más sofisticado, con algunos parámetros opcionales para medir tiempos o identar los mensajes según el nivel de la pila de procedimientos: DebugText -time -abs -rel -level $texto También puede ser muy útil para depurar, imprimir un texto en una ventana, sin que se paralice el flujo, mediante: WarnWinText $texto, ó paralizando la ejecución (ventana modal), mediante: WarnWin $texto 2. RAMDEBUGGER Para una depuración más amigable, en Compass y CIMNE se ha desarrollado una herramienta especializada para editar y depurar código tcl: RamDebugger. 2.1. Descripción de la herramienta RamDebugger está implementado completamente en Tcl/Tk, y en su actual distribución requiere que se instale una versión reciente del interprete Tcl (en futuras distribuciones probablemente se distribuirá como un ejecutable autosuficiente) 108

Para arrancar el programa, una vez instalado Tcl, basta hacer doble-clic sobre el fichero RamDebugger.tcl, con lo que se abre una ventana como la siguiente: La distribución es similar a otras herramientas: A - panel para la selección de ficheros B - panel de visualización y edición del código C -Mensajes del programa, errores,... D Visualización y modificación de las variables especificadas E - Visualización y modificación de las variables del ámbito actual F Barra de mensajes (número de fila, etc) G Barra de iconos y menús de opciones. 109

El editor tiene una serie de prestaciones que lo hacen de por sí muy útil, incluso aunque no se desee depurar el código: Marcado por colores de los comandos, identación automática con el tabulador, mostrado de bloques al cerrar llaves, herramientas para deshacer, buscar y sustituir palabras, ayuda contextual de las palabras clave (tecla F1), comentar / descomentar regiones, Manual de referencia de Tcl/Tk y algunos Packages adicionales, etc. 2.2. Depuración local Para detener la ejecución en una línea, hay que situarse en ella y pulsar <F9>, con lo que aparece un punto de ruptura marcado con un círculo rojo junto a la línea. Un script Tcl local se arranca desde el depurador pulsando la tecla <F5>. Por ejemplo si se escribe el siguiente código, para crear una ventana Tk con una etiqueta con el clásico mensaje Hello world y un botón para cerrarla: proc HelloWorld { { set w.helloworld toplevel $w wm title $w "Message Demonstration" label $w.lbl1 -text "Hello world" button $w.btn1 -text "Close" -command "destroy $w" grid $w.lbl1 grid $w.btn1 HelloWorld Se pone una parada en la 3ª línea (toplevel $w), y se ejecuta con <F5>, puede verse que la ejecución se para en dicha línea (marcada con un flecha amarilla), y en el panel E aparece la variable automática w con el valor actual.helloworld Si quisiéramos podríamos cambiar su valor, por ejemplo a.hellowin Si se mueve el cursor sobre el nombre de la variable en el panel de edición B, aparece una etiqueta mostrando el valor de la variable 110

Si se pulsa <F10> se continua la ejecución una línea, y si se pulsa <F11> se avanza una línea entrando en los procedimientos afectados (avance paso a paso). Si se pulsa nuevamente <F5> la ejecución continua hasta la siguiente parada. 2.3. Depuración remota En un caso, como por ejemplo en GiD, el código Tcl no es el que inicia la ejecución del programa, sino que el núcleo del programa arranca primero, e invoca posteriormente a los procedimientos tcl. Este hecho invalida una depuración local como la explicada anteriormente. Es necesario un mecanismo especial, mediante el cual, el programa se conecta a un programa en ejecución, y permite una depuración remota. Por ejemplo, supongamos que arrancamos GiD, y tenemos un tipo de problema con un código similar al anterior, pero que es invocado por el procedimiento InitGIDProject, bien conocido por los desarrolladores de interfaces. En este caso, tenemos un problemtype llamado HelloWorld.gid, que contiene únicamente el siguiente fichero HelloWorld.tcl proc InitGIDProject { dir { HelloWorld proc EndGIDProject { { proc HelloWorld { { set w.helloworld toplevel $w wm title $w "Message Demonstration" label $w.lbl1 -text "Hello world" button $w.btn1 -text "Close" -command "destroy $w" grid $w.lbl1 grid $w.btn1 Antes de ejecutar GiD, para hacer debugger remoto, hay que poner el valor de la variable GidPriv(Configuration) a debug (en el fichero ConfigureProgram.tcl ). 111

Entonces ejecutamos el programa GiD, y después arrancamos RamDebugger, en el cual abrimos el fichero HelloWorld.tcl En el menú de RamDebugger: File->Debug On, nos aparecerá la opción gid Si no es así puede forzarse una actualización con el menú: File->Debug On->Update remotes Entonces podemos poner una parada con <F9>, por ejemplo en la única línea HelloWold del procedimiento InitGIDProject. Ahora cargamos el tipo de problema en GiD (menú: Data->Problemtype- >HelloWorld), y entonces el programa RamDebugger toma el control y detiene la carga en el punto especificado. En ese momento, la depuración ya es igual que en el caso local, por ejemplo podemos entrar en el procedimiento HelloWorld con una ejecución paso a paso mediante la tecla <F11>. En ocasiones puede ser útil usar la opción del menú: Debug->Reinstrument, para forzar una recarga del código tcl en GiD, por ejemplo después de realizar alguna modificación del código y una continuación de la ejecución sin reiniciar GiD. 112