Método de depuración de software
Descripción general
 Proporcione un método de depuración para depurar de manera eficiente y altamente precisa todo el programa. ] Suministrar el programa de origen 101 al compilador 103 para formar un programa de objeto 104 que incluye la información de depuración 102 proporcionada para cada función que constituye el programa de origen 101 y suministrar el programa de objeto 104 al depurador 106 para crear un programa de objeto 104 y un paso ejecutado de acuerdo con la información de enlace del programa objeto 104 se depuran al unir el programa fuente 101 en una unidad funcional, La depuración se realiza de manera eficiente y con alta precisión.
Campo técnico
La presente invención se refiere a un método de depuración de software de un programa de lenguaje de alto nivel, y en particular a un método de depuración de software de un programa compuesto por una pluralidad de funciones.
Antecedentes de la técnica
Normalmente, el siguiente método de depuración está disponible para la depuración de programas. En el método de depuración secuencial para ejecutar la depuración en unidades de un paso de una descripción de programa que constituye un programa, dado que el resultado de depuración se obtiene en unidades de un paso de fila, se puede ejecutar una depuración altamente precisa. El método de depuración secuencial se utiliza para la depuración detallada. Además, en el método de depuración de módulos que designa la dirección del módulo que constituye el programa y ejecuta la detección de errores lógicos, es posible especificar el rango objetivo de depuración y adquirir el resultado de depuración dentro de ese rango. En este caso, dado que el programa se ejecuta hasta el rango especificado, se aumenta la velocidad de depuración. El método de depuración del módulo mencionado anteriormente se utiliza para depurar todo el programa y la depuración de un módulo predeterminado.
Tarea de solución
Sin embargo, el método de depuración secuencial y el método de depuración de módulos tienen las siguientes desventajas. En el método de depuración secuencial antes mencionado, cuando un rango de programa a depurar es grande, lleva mucho tiempo depurar. El método de depuración del módulo conoce el resultado final en la dirección especificada, pero es difícil captar el resultado a la mitad. Además, cuando se especifica un módulo predeterminado, dado que la depuración no se realiza en todo el programa, no es posible captar el flujo de procesamiento de todo el programa. Por lo tanto, los presentes inventores encontraron la necesidad de un método de depuración para resolver el inconveniente anterior.
Un objeto de la presente invención es proporcionar un método de depuración para mejorar la velocidad de depuración de todo el programa y mejorar la precisión de depuración.
Los objetos anteriores y otros y las características novedosas de la presente invención se harán evidentes a partir de la descripción de esta especificación y los dibujos adjuntos.
Solución
Un resumen de los representativos de las invenciones divulgadas en la presente solicitud se describirá brevemente de la siguiente manera.
En otras palabras, un programa de origen escrito en un lenguaje de alto nivel y estructura de programa proporcionada en una unidad de función que constituye el programa de origen, el programa de origen se traduce por un compilador y la información de estructura de programa que se proporcionará al depurador es Un paso de formar una tabla de estructura de enlace de funciones que constituyen el programa objeto desde el programa objeto suministrado al depurador, un paso de formar la tabla de estructura de enlace de la función que constituye el programa objeto desde el programa objeto suministrado al depurador, Y un paso que se ejecuta paso a paso, constituye un método de depuración de software. Además, si se proporciona un programa fuente escrito en un lenguaje de alto nivel e información de direcciones para designar un rango de depuración, el programa objeto se ejecuta por pasos en unidades de función de acuerdo con la información de dirección, y constituye un método de depuración de software. Al proporcionar la información de invalidez del paso de la unidad de función en la tabla de estructura de enlace, es posible liberar el paso por unidad de función de la función. El programa objeto anterior puede visualizarse solo con una función que tenga información de notación de función y que constituya un programa fuente.
Según los medios descritos anteriormente, el programa fuente está compuesto por una pluralidad de estructuras y la estructura del programa tal como la información de posición jerárquica de función, la información de posición de bifurcación condicional, la información de posición de bucle, la dirección de inicio y la dirección final de la función. Y se emite como un programa objeto que puede realizar de manera eficiente la depuración del software como información de la estructura del programa en la unidad estructural. Al suministrar el programa al compilador, la información de la estructura del programa se incorpora en un área de registro predeterminada del programa objeto. Cuando el programa objeto se suministra al depurador, una tabla de estructura de enlace de funciones que constituye el programa objeto está formada por la información de estructura de programa incorporada en el programa objeto. El depurador ejecuta paso por función de acuerdo con la relación de enlace de la tabla de estructura de enlace. Es posible desactivar el paso de la unidad de función de la función invalidada al agregar información para invalidar el paso de la unidad de función a la tabla de estructura de programa. Por otro lado, la información de dirección para designar el rango de depuración se establece en una dirección predeterminada del programa de objeto para adquirir secuencialmente el resultado de depuración. El depurador adquiere sucesivamente la información del resultado de depuración para cada una de las posiciones anteriores. Si la información que indica las funciones que constituyen el programa de origen se suministra al depurador, se puede enviar al dispositivo de visualización durante la depuración.
La figura 1 muestra un ejemplo de proceso de depuración para ejecutar el método de depuración de la presente invención. Este proceso de depuración está formado por un compilador 103 que lee un programa fuente 101 a depurar, emite un programa objeto 104 que incluye información de depuración 102, y un depurador 105 que lee el programa objeto 104 y proporciona una función de depuración. El programa fuente 101 está estructurado jerárquicamente por una pluralidad de funciones en un lenguaje de alto nivel. La función anterior es un programa de una subrutina tal como un programa de procesamiento de una rutina principal, un programa de procesamiento de bifurcación de la subrutina, un programa de procesamiento de bucle, y similares. La información de depuración 102 incluye información de posición jerárquica de una función que constituye el programa fuente 101, información de posición de bifurcación condicional dentro de la función, información de posición de bucle, una dirección de inicio de la función, una dirección final de la función, un predeterminado utilizado para la depuración Información de designación de la función en la posición jerárquica del atributo de estructura de programa, y ​​similares. Cuando el programa fuente 101 se suministra al compilador 103, la información de depuración 102 se agrega como un registro de información de depuración, y se forma el programa de objeto 104. En base al registro de información de depuración, el depurador 105 forma una tabla dentro del depurador 105 en función de la información de depuración. Por ejemplo, la tabla de información de enlace de depuración está formada en una unidad de función, y se proporciona un puntero que indica una estructura jerárquica entre funciones basándose en la información de posición jerárquica de la función. Este puntero, y una siguiente puntero que muestra la dirección de la cabeza de las funciones subyacentes sean procesados ​​siguiente, y el puntero paralelo que indica la dirección de inicio de la función de la capa a ser el proceso siguiente, la capa superior para el retorno de la capa inferior a la capa superior de la rutina de programa Del puntero anterior. Estos punteros están habilitados o deshabilitados dependiendo de la información de designación de la función utilizada para la depuración. Por ejemplo, cuando se proporciona un siguiente puntero que designa la función B y un puntero paralelo que designa la función C en la tabla de información del enlace de depuración correspondiente a la función A, las funciones A, Cuando se especifica B, el puntero paralelo en la estructura se invalida. Esto significa que la depuración no se realiza para la función C en las estructuras de las funciones A, B y C. La depuración se ejecuta paso a paso, y el resultado de depuración se obtiene para cada función. Además, cuando hay un lugar para designar una función como subrutina en la función, el proceso desde la dirección de inicio de la función hasta el lugar anterior se toma como un solo paso y se adquiere el resultado de la depuración. El depurador 105 para comprobar el funcionamiento del programa fuente 101, suministra el programa objeto 104, que está formado por el programa fuente 101 al microordenador 106 adquiere el resultado de depuración en unidades de paso, dado que proporcionan a la mesa depurador 105 . El estado de depuración se muestra en el monitor 207 conectado al depurador 105 usando información de notación de función. Como se describió anteriormente, de acuerdo con el método de depuración de la presente invención, es posible depurar continuamente todo el programa fuente mientras se recopila el resultado de depuración en función de la función.
La figura 2 muestra una descripción de programa de ejemplo del programa fuente 101 y una relación de enlace de funciones que constituyen el programa. (A) de la misma figura se simplifica mediante una función constituida por un programa de descripción de lenguaje C que es un ejemplo de un lenguaje de alto nivel. De acuerdo con esta descripción, la función sub1 () se considera como la rutina principal, y las funciones sub2 () y sub3 () se configuran como subrutinas de la función sub1 (). Por lo tanto, en el programa, la función sub1 () se ubica en la capa superior, y las funciones sub2 () y sub2 () son estructuras estratificadas ubicadas en la capa inferior. Además, la función sub2 () y la función sub3 () están en la misma capa. Un ejemplo del flujo de procesamiento de las funciones sub1 (), sub2 (), sub3 () se muestra en la FIG. En el depurador 105, se proporciona una tabla de información de enlace de depuración correspondiente a cada una de las funciones sub1 (), sub2 () y sub3 (). Según (B) de la misma figura, el depurador 105 usa el siguiente puntero que indica la dirección de inicio de la función sub2 () proporcionada en la tabla de información de enlace de depuración correspondiente a la función sub1 (), durante el procesamiento de la función sub1 () Mueva la depuración a la función sub2 (). Aquí, en la tabla de información del enlace de depuración correspondiente a la función sub 2 (), el puntero anterior indica la dirección para volver a la función sub 1 () como la rutina principal y el puntero paralelo como la dirección principal de la función sub 3 () Está establecido. Cuando el puntero paralelo se establece como válido por la información de designación de la función utilizada para depurar la información de depuración 102 de la función sub 2 () y la información de posición jerárquica de la función, después del procesamiento de la función sub 2 () , Y pasa al procesamiento de la función sub 3 (). En la tabla de información de enlace de depuración correspondiente a la función sub 3 (), como se proporciona un puntero anterior que indica una dirección para regresar a la función sub 1 () como la rutina principal, la depuración se realiza después del procesamiento de la función sub 3 () Regresa a la función sub1 () que es la rutina principal. Por otra parte, en la tabla de información de enlace de depuración del sub2 función (), cuando se designa a co puntero deja de ser válida, sin depurar SUB3 () la función que se hace, la depuración después del procesamiento de la sub2 función (), Regrese a la función de rutina principal sub1 () y continúe la función de depuración sub1 (). De esta manera, cuando existe una pluralidad de punteros en la función, un puntero a usar en el depurador 105 se designa de antemano por la información de depuración 102 de la función, y se especifica una ruta de depuración.
La figura 3 muestra un diagrama de flujo de ejemplo del procesamiento del depurador 105. Cuando el depurador 105 recibe el programa de objeto 104, se forma la tabla de información de enlace de depuración, y el depurador ejecuta la depuración por función de acuerdo con un puntero validado en la tabla de información de enlace de depuración (301). El resultado de la depuración se adquiere por función, y si hay un lugar de llamada de subrutina en la función, también se puede adquirir el resultado de depuración en ese momento. Aquí, con respecto a la pluralidad de punteros puede ser función ajustada por una rama condicional o bucle condicional como, un puntero está definida por la información de ubicación jerárquica de la información designada y de una función para ser utilizado para el avance de depuración información de depuración 102 Lo ha hecho. Por ejemplo, si el siguiente puntero se establece en la información de depuración 102 correspondiente a la función predeterminada (302), el procesamiento del depurador 105 se desplaza a la función designada por el siguiente puntero en la posición predeterminada (303). Si se establece un puntero paralelo en la información de depuración 102 (304), el procesamiento del depurador 105 se desplaza a la función designada por el puntero paralelo después del procesamiento de la función (305). Cuando el puntero anterior se establece en la información de depuración 102, el procesamiento del depurador 105 se devuelve a la función de capa superior designada por el puntero de procesamiento antes del procesamiento (306). De acuerdo con este diagrama de flujo, se puede ver que la depuración se continúa secuencialmente de acuerdo con todos los punteros válidos proporcionados en la tabla de información del enlace de depuración. El resultado de depuración obtenido se almacena en una tabla predeterminada proporcionada en el depurador 105. Según el método de depuración de la presente invención, ya que es posible obtener una unidad de función resultado depuración realiza una unidad de función de depuración a través de todo el proceso del programa, todo el tiempo de depuración programa redujo a y precisión Debug puede realizarse.
La figura 4 muestra un ejemplo de otro método de depuración de la presente invención. Este método de depuración se caracteriza por utilizar un punto de interrupción en lugar del puntero anterior. El punto de corte B es una dirección arbitraria del programa de origen 101 que puede establecerse mediante la información de depuración 102 y se utiliza como un índice para especificar el intervalo de depuración. En la información de depuración de la función 102, el programa de fuente 101 se suministra al compilador 103, formando así un programa de objeto 104 al que se agrega información de función. Aunque este programa de objeto 104 se suministra al depurador 105, no forma una tabla de información de enlace de depuración formada cuando se utiliza el puntero. programa objeto El depurador 105, la información de la función se suministra 104 anexa dirección de la función de punto de interrupción en el depurador está establecido, la recogida de los resultados de depuración de depuración de parada para cada dirección designada por el punto de ruptura B . Si se continúa la depuración detenida en la dirección en la que se establece el punto de interrupción B, la depuración se puede realizar secuencialmente hasta el próximo punto de interrupción B ingresando un comando que instruya la continuación al depurador 105. Como se muestra en la figura 4, si el punto de corte B se especifica como la dirección de inicio y la dirección final de la función, la depuración se puede realizar en función de la misma manera que la depuración usando el puntero.
La figura 5 muestra un ejemplo de un programa a depurar. Según la figura, el programa se compone de funciones representadas por la función main (), la función add_out (), la función sub_out () y la función out_data (). En la función anterior, la rutina principal consiste en la función main (), y las funciones add_out (), sub_out () y out_data () se proporcionan como las subrutinas.
La figura 6 muestra una parte de la pantalla del monitor durante la depuración del programa mostrado en la figura. Dado que el monitor se muestra como una función que constituye el programa fuente 101, la información de indicación de función se proporciona en la información de depuración 102 utilizada para la depuración en la figura. En la depuración utilizando el puntero validado en la tabla de información de depuración que se muestra en la figura 6 (A), el puntero se valida, * se muestra en la función a depurar y el PC contador de programa indica el lugar actual de depuración Se muestran En este caso, no agregar un * a la función se considera como información que invalida la ejecución del paso de la función. Por el contrario, la información que hace inválida la ejecución del paso se puede agregar a una función que no ejecuta la ejecución del paso. En la depuración utilizando el punto pl mostrado en (B) de la figura, B se visualiza en la función en la que se proporciona el punto de corte B en la dirección de inicio y la dirección final de la función, y el PC contador de programa que indica la ubicación actual de depuración La posición está indicada. Un ejemplo de visualización de parámetros de cada función se muestra en (C) de la figura. La visualización del parámetro se puede visualizar en la pantalla designando una función deseada. En (C) de la figura, se muestran los parámetros de la función add_out (), y se indican el tipo de longitud de datos y el valor de entrada real. De esta manera, dado que el estado de procesamiento puede confirmarse sobre la base de una función durante la depuración, se facilita la identificación del rango de detección de errores.
De acuerdo con la realización anterior, se pueden obtener los siguientes efectos operacionales.
(1) Utilizando la información de depuración 102 de la función que constituye el programa a depurar, el programa fuente 101 es traducido por el compilador 103 para formar el programa objeto 104 que incluye la información de depuración 102 Para el depurador 105 y la depuración se realiza según el puntero válido de la tabla de información de enlace de depuración formada sobre la base de la información de depuración 102, se puede ejecutar paso a paso en una unidad de función que constituye la depuración de todo el programa fuente . En otras palabras, dado que la depuración se ejecuta paso a paso en unidades de función que constituyen el programa completo, la velocidad de depuración aumenta y el resultado de depuración se adquiere en función de la mejora de la precisión de depuración.
(2) Al suministrar el programa fuente 101 al compilador 103 para formar el programa objeto 104 que incluye la información de dirección, y suministrarlo al depurador 105, la depuración del programa completo se ejecuta por pasos dentro del rango especificado por el punto de corte B Tu puedes
(3) En el monitor de depuración 107, la posición de depuración se muestra mediante la información de notación de función establecida por la información de depuración 102. Por lo tanto, es posible reconocer fácilmente la posición de depuración mediante la notación de funciones en tiempo real.
Por encima de presente la invención hecha por el [inventor] específicamente se describió basa en ejemplos, pero la presente invención no está limitada a ellos pero, naturalmente, puede ser modificado de diversas maneras sin apartarse de la esencia de la misma .
Por ejemplo, en la presente realización, el puntero se proporciona para cada función que constituye el programa. Sin embargo, cuando la depuración se realiza nuevamente en la función que una vez se confirmó el funcionamiento normal, se omite la depuración de la función y se ejecuta la depuración. Tu puedes
En la descripción anterior, el caso en el que la invención realizada por el presente inventor se aplicó principalmente al programa jerárquico que es el campo de utilización como se muestra el fondo, pero sin limitación particular, Se puede aplicar a la depuración del programa.
Efecto de la invención
Los efectos obtenidos por los representativos de las invenciones divulgadas en la presente solicitud se describirán brevemente de la siguiente manera.
Es decir, al proporcionar un programa de origen a un compilador para formar un programa de objeto que incluye información de estructura de programa proporcionada en una unidad de función que constituye un programa de origen y suministrarlos a un depurador, información de estructura de enlace que indica una estructura jerárquica de la función Por ejemplo. De acuerdo con la información de estructura de enlace formada, el depurador puede depurar paso a paso el programa de objeto del programa de origen suministrado en función de la información de estructura de enlace formada. Por lo tanto, al depurar todo el programa, es posible pasar por la función, por lo que se mejora la velocidad de depuración y la precisión de depuración también se mejora porque la unidad de adquisición de resultados de depuración es una unidad de función.
Breve descripción de los dibujos La figura 1 es un diagrama de bloques que muestra un ejemplo de un método de depuración de acuerdo con la presente invención.
La figura 2 es un diagrama explicativo de un método de depuración que usa el puntero de la presente invención.
La figura 3 es un diagrama de flujo de un ejemplo de un proceso de depuración de acuerdo con la presente realización.
La figura 4 es un diagrama explicativo de un método de depuración que usa un punto de corte de la presente invención.
La figura 5 es un diagrama explicativo de un ejemplo de una descripción de programa de lenguaje C que debe depurarse.
La figura 6 es un diagrama explicativo de un ejemplo de una pantalla de visualización de monitor durante la depuración.
programa 101 fuentes
102 Información de depuración
103 compilador
104 Programa de objetos
105 Depurador
106 microcomputadora
107 monitor
Reclamo
Reivindicaciones 1. Un programa fuente escrito en un lenguaje de alto nivel y estructura de programa proporcionada en unidades de funciones que constituyen dicho programa fuente, en el que dicho programa fuente se traduce por un compilador y dicha información de estructura de programa se suministra a un depurador Un paso de formar una tabla de estructura de enlace de una función que constituye un programa objeto desde el programa objeto suministrado al depurador, un paso de formar una tabla de estructura de enlace de la función en la unidad funcional sobre la base del programa de función suministrado al depurador, Y un paso para ejecutar el paso de depuración del software de acuerdo con las instrucciones.
2. Un método de depuración de software, que comprende: un programa fuente escrito en un lenguaje de alto nivel e información de dirección, en el que en dicho depurador, dicho programa objeto se ejecuta por pasos en una unidad de función de acuerdo con dicha información de dirección. Método.
3. El método de depuración de software de acuerdo con la reivindicación 1, en el que la información de deshabilitación de paso de la unidad de función se proporciona en la tabla de estructura de enlace para liberar el paso por unidad de función de la función.
4. El método de depuración de software de acuerdo con la reivindicación 1 o 3, en el que el programa objeto puede visualizarse solo con una función que tiene información de notación de función y que constituye un programa fuente.
Dibujo :
Application number :1997-006644
Inventors :株式会社日立製作所
Original Assignee :石倉知己、篠田佳博