Ejecución del programa Flash finalizada~Emergencia~~
● Haga clic en el espacio vacío a la izquierda de la línea de código seleccionada. código
● Presione F5
● Seleccione el elemento Cambiar punto de interrupción en el menú de aceleración del editor de código
● Seleccione Ejecutar Agregar punto de interrupción para abrir el cuadro de diálogo Editar punto de interrupción. y luego seleccione Nuevo para confirmar Nuevo punto de interrupción. Ejecutar|Agregar punto de interrupción Abra el cuadro de diálogo Editar punto de interrupción, luego seleccione "Nuevo" para confirmar la nueva configuración del punto de interrupción, o seleccione "Modificar" para modificar el punto de interrupción existente
● Seleccione Agregar en el menú de aceleración de la lista de puntos de interrupción Punto de interrupción
● Seleccione el elemento del punto de interrupción en el menú de aceleración de la lista de puntos de interrupción.
El punto de interrupción debe ubicarse en la línea de código ejecutable si el punto de interrupción se establece en un comentario, línea en blanco o descripción de variable; , no es válido. Además, los puntos de interrupción se pueden establecer tanto en el estado de diseño como en el estado de depuración en tiempo de ejecución.
12.4.3.2 Operar puntos de interrupción
La ventana de lista de puntos de interrupción enumera el nombre del archivo fuente, el número de línea, la condición y los tiempos de paso de todos los puntos de interrupción. Si un punto de interrupción es ilegal o está deshabilitado, aparecerá gris en la ventana de lista.
La ventana de lista de puntos de interrupción se puede abrir seleccionando el menú "Ver" | "Puntos de interrupción".
La ventana de lista de puntos de interrupción es la base para las operaciones de puntos de interrupción.
1. Muestre y edite el código en los puntos de interrupción
Utilice la ventana de lista de puntos de interrupción para encontrar rápidamente la ubicación del punto de interrupción en el código fuente.
Primero seleccione un punto de interrupción, luego seleccione Ver código fuente o Editar código fuente en el menú del acelerador. En este punto, CodeEditor se actualiza para mostrar el código en la ubicación del punto de interrupción. Si selecciona ViewSource, la ventana de lista de puntos de interrupción permanece activa; si selecciona EditSource, el editor de código gana el foco de entrada y puede modificar el código fuente en la ubicación del punto de interrupción.
2. Deshabilitar y restaurar puntos de interrupción
Deshabilitar los puntos de interrupción de la ejecución actual del programa. Esto es útil si define un punto de interrupción que no necesita en este momento pero que puede necesitar más adelante.
En el menú Acelerar de la ventana de lista de puntos de interrupción, los elementos Desactivar punto de interrupción y Desactivar todos los puntos de interrupción pueden desactivar el punto de interrupción seleccionado actualmente o todos los puntos de interrupción.
"Habilitar puntos de interrupción" y "Habilitar todos los puntos de interrupción" en el menú "Acelerar" habilitarán los puntos de interrupción correspondientes.
3. Eliminar puntos de interrupción
Puede eliminar puntos de interrupción en el editor de código o en la ventana de lista de puntos de interrupción.
Desde el editor de código:
● Pase el cursor sobre la línea que contiene el punto de interrupción y presione F5 (o seleccione Alternar punto de interrupción en el menú Aceleración)
● Haga clic en el terminador a la izquierda de la línea que contiene el punto de interrupción
Desde la ventana Lista de puntos de interrupción:
● Resalte el punto de interrupción que desea eliminar y seleccione en el menú Aceleración Seleccione el elemento EliminarPunto de interrupción . Seleccione el elemento DeleteBreakPoint del menú de aceleración
● Para eliminar todos los puntos de interrupción actuales, seleccione el elemento DeleteAll BreakPoints del menú de aceleración
12.4.3.3 Modificar las propiedades de los puntos de interrupción
Haga doble clic en el punto de interrupción seleccionado en la ventana de lista de puntos de interrupción o seleccione EditarPunto de interrupción en el menú de aceleración para abrir el cuadro de diálogo de edición de puntos de interrupción para editar las propiedades del punto de interrupción.
Utilizando el cuadro de diálogo de edición de puntos de interrupción, puede cambiar la ubicación del punto de interrupción y establecer las condiciones para el punto de interrupción.
Hay dos tipos de condiciones de punto de interrupción: condiciones booleanas y condiciones de recuento de pases.
El cuadro de edición de condición se utiliza para establecer condiciones de expresión booleana.
Si la expresión se evalúa como verdadera (o distinta de cero), el programa finaliza la ejecución en el punto de interrupción; de lo contrario, el depurador ignora el punto de interrupción.
El cuadro de edición "Recuento de pasadas" establece la condición de recuento de pasadas, lo que significa que la ejecución del programa finalizará en el punto de interrupción sólo cuando el programa pase el número de veces establecido en el punto de interrupción. Esto normalmente se usa para depurar declaraciones dentro de bucles.
Una cosa a tener en cuenta es que cuando se establecen tanto la condición como el número de pases, PassCount es el número de pases que satisfacen la condición.
Para el siguiente programa:
var
i, Re, s: Integer
begin
s:= 1;
Re:= 0;
para i:=1 a 100 hacer
Re:=Re s*i;
end;
Establece un punto de interrupción en la línea Re:=Re s*i;.
Si la condición se establece en:
Condición: i = 3
Número de pasadas: 4
entonces detecta i al abortar el valor del programa, el valor de i es 7.
12.4.3.4 Establecer el color de los puntos de interrupción y los puntos de ejecución del programa
Seleccione Opciones | Entorno para ingresar al cuadro de diálogo Configuración del entorno y seleccione la pestaña EditorColors. En este punto, puedes configurar los colores de fondo y primer plano de tu proyecto si lo deseas.
12.4.4 Monitoreo de valores de datos
El depurador integrado proporciona las siguientes herramientas para monitorear valores de datos en el programa:
● Ventana de lista de observación
● Cuadro de diálogo Calcular/Modificar
● Ventana Apilar
12.4.4.1 Expresiones de observación
La ventana Lista de observación muestra las expresiones que puede utilizar en su programa Lista de expresiones. Mientras el programa se está ejecutando, la ventana de la lista de observación muestra el valor de la expresión de observación actual.
Seleccione Ver|Relojes para abrir la ventana Lista de seguimiento.
La forma más sencilla de agregar una expresión de observación desde el editor de código es:
1. Seleccione la expresión a observar
2. Editando desde el código; Seleccione Agregar observación en el menú del Acelerador para agregar la expresión a la ventana de la lista de observación.
También puede generar expresiones de vigilancia utilizando los siguientes métodos:
1. Abra el cuadro de diálogo WatchProperties mediante uno de los siguientes métodos:
● Seleccione del menú menú principal Ejecutar | Agregar expresión de vigilancia
● Seleccione Agregar expresión de vigilancia en el menú de aceleración del editor de código
● Seleccione Agregar expresión de vigilancia en el menú de aceleración del editor de código en el cursor. Seleccione Agregar vigilancia en el menú de aceleración del editor de código en el cursor
● Presione las teclas Ctrl-F5
● Haga doble clic en la expresión de vigilancia en la ventana de la lista de vigilancia
● Seleccione una expresión de la ventana de la lista de observación y seleccione Editar en el menú Aceleración
2. Ingrese o seleccione una expresión en el cuadro de lista desplegable Expresión del cuadro de diálogo Propiedades de observación. Ingrese o seleccione una expresión de monitoreo en el cuadro de lista desplegable "Expresión" del cuadro de diálogo "Propiedades del monitor";
3. Establezca el formato de visualización y el estado de habilitación de la expresión.
De manera similar a los puntos de interrupción, el menú Aceleración se puede utilizar para deshabilitar, restaurar o eliminar expresiones observadas.
12.4.4.2 Calcular/Modificar expresiones
Seleccione Ejecutar|Evaluar/Modificar para abrir el cuadro de diálogo Calcular/Modificar. Después de hacer clic en el botón "Evaluar", el valor de la expresión en el cuadro de edición "Expresión" se mostrará en el campo "Resultado".
Se puede ingresar o seleccionar cualquier expresión legal (incluidas las propiedades de los objetos) en la expresión, excepto:
1. Contiene variables locales a las que no se puede hacer referencia en el punto actual de ejecución o Expresión de variables estáticas;
2. Llamada a función o procedimiento.
Una expresión en una expresión puede contener caracteres de formato específicos que especifican su formato de visualización. La siguiente tabla enumera los caracteres de formato y sus funciones.
Tabla 12.8 Formato de caracteres y sus funciones
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━
Función de formato de carácter
----.---------- ----------
$, H, Caracteres
Fn Muestra un número de punto flotante en n dígitos significativos
M Muestra el valor de volcado de memoria de una variable en formato hexadecimal
P Muestra la variable en formato de segmento y desplazamiento. Muestra el puntero en formato de desplazamiento. Ambos segmentos son valores hexadecimales de cuatro dígitos
R Muestra el nombre de dominio y el valor del registro, objeto (por ejemplo, X: 5, Y: 2)
S Muestra el formato ASCII caracteres Cadena (incluidos caracteres especiales). Se utiliza para modificar el valor del volcado de memoria
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
La modificación del valor de una expresión se utiliza a menudo para verificar la exactitud de una solución a un error. Ingrese o seleccione la expresión que desea modificar en el cuadro de edición de expresión, luego haga clic en el botón Evaluar para observar el valor actual de la expresión. Luego ingrese o seleccione un nuevo valor en el cuadro de edición de nuevo valor, haga clic en el botón Modificar para confirmar y actualizar el elemento de datos. Esta modificación sólo afecta a operaciones específicas del programa.
Modificar el valor de una expresión (especialmente variables de puntero y subíndices de matriz) puede tener consecuencias no deseadas. Por lo tanto, se debe extremar la precaución al utilizarlo.
12.4.4.3 Mostrar llamadas a funciones
Seleccione Ver | Pila de llamadas para mostrar la ventana de la pila de llamadas. Las llamadas a funciones más recientes de la aplicación se enumeran en la parte superior de la ventana de la pila de llamadas.
Utilice la ventana de la pila de llamadas para salir de la función rastreada actualmente y también puede utilizar el elemento del menú de aceleración para mostrar o editar el código fuente ubicado en una llamada de función específica
12.5 Otros herramientas de depuración
Aunque el depurador integrado de Delphi es potente, no está calificado para tareas de depuración. Además, debido a que el depurador integrado provoca cambios sutiles en el entorno del programa durante la ejecución, puede afectar la forma en que ocurren los errores. Por lo tanto, necesitamos utilizar otras herramientas de depuración para completar la tarea. Estas herramientas de depuración incluyen TurboDebugger, WinSight, WinSpector y Browser.
12.5.1 Turbo Debugger
Turbo debugger es el depurador de lenguajes de tercera generación lanzado por Borland. Aún no ha lanzado una nueva versión que sea totalmente compatible con Delphi, pero básicamente es capaz de depurar programas generales de Delphi.
Turbo Debugger se ejecuta en modo de caracteres, pero es un verdadero programa de Windows que utiliza sólo una interfaz basada en caracteres. Debido a que TurboDebugger es un programa especial que puede controlar otros programas, no puede utilizar funciones comunes de cambio de tareas de Windows, como Alt Tab.
El funcionamiento del depurador Turbo es básicamente igual o similar al del depurador integrado. Usando el menú Archivo | Abrir, puede iniciar el depurador cargando el archivo que desea depurar.
Para utilizar el depurador Turbo, los símbolos de depuración deben almacenarse en el archivo ejecutable. Esto se explica en (12.4.1.1).
El depurador Turbo tiene muchas características nuevas en comparación con el depurador integrado.
En primer lugar, proporciona mucho control sobre la información del hardware subyacente. El usuario tiene acceso completo a los registros, indicadores y memoria del sistema de la CPU. El usuario puede seguir un puntero lejano hasta una ubicación de memoria e inspeccionar su contenido directamente. TurboDebugger puede rastrear código incluso sin código fuente.
Turbo Debugger admite muchas funciones específicas de Windows. Puede rastrear mensajes de Windows, permitirle ver los montones locales y globales de su programa y explorar una lista de todas las unidades de código que componen su programa, incluidas las DLL.
Además, el depurador Turbo también admite capacidades de ejecución remota. Turbo Debugger se puede configurar para controlar otra máquina a través de un enlace serie o una red habilitada para NetBIOS. En este modo, una máquina muestra la pantalla del depurador y la otra máquina muestra el programa que se está rastreando. Esto le permite recorrer un programa en una pantalla y monitorear los resultados en otra.
12.5.2 WinSight
WinSight es una herramienta de depuración para ver objetos de Windows y rastrear mensajes enviados y recibidos.
La interfaz de WinSight se divide en dos partes: la ventana del árbol de objetos en la parte superior y la ventana de seguimiento de mensajes en la parte inferior. Como se muestra en la Figura 12.9.
En el funcionamiento real, es posible que los usuarios solo estén interesados en parte de la información y no quieran verse ahogados en información inútil. Para hacer esto, el usuario puede abrir el menú Mensajes y seleccionar Ventana seleccionada. Mantenga presionada la tecla Mayús y haga clic en un objeto de interés en la ventana del árbol de objetos. Cualquier mensaje para el objeto seleccionado se mostrará en la ventana de seguimiento de mensajes.
Si el usuario solo desea rastrear ciertas categorías de información, abra el menú Información y seleccione Opciones, luego filtre la información usando las casillas de verificación que se muestran en la Figura 12.10.
12.6.6 Resumen
La cuestión central presentada en este capítulo es cómo mejorar la solidez del programa y mejorar la eficiencia del desarrollo. Con este fin, aprendimos sobre el mecanismo de manejo de excepciones de Delphi y luego presentamos varias herramientas de depuración de programas, que serán indispensables cuando complete el aprendizaje de conocimientos básicos y se convierta en un programador avanzado que desarrolle aplicaciones a gran escala
.