Método del simulador de programa y método de depuración del programa
Descripción general
 Reduzca el tiempo de trabajo de depuración al volver a depurar al volver a ejecutar este programa al depurar el programa. ] Crea y mantiene un orden inverso cuando la depuración de un programa desde la instrucción de un programa ejecutado en la dirección hacia adelante, y la dirección de líder con la dirección de la función de una función de una pluralidad de instrucciones, el contenido de la dirección de memoria y los registros en ese momento mientras que conserva el valor de los recursos se muestra, en el momento de los programas de depuración re, retenido instrucción inversa una instrucción a un tiempo de ejecución para hacer marcha atrás instrucción, y ejecuta secuencialmente en la dirección hacia adelante desde la dirección de inicio de la función. Como resultado, el tiempo requerido para el trabajo de depuración en la depuración de errores de un programa de función tal como una subrutina y similar que se extiende a cientos de pasos se puede acortar drásticamente.
Campo técnico
La presente invención se refiere a un aparato simulador de programa re-ejecutable mediante el retroceso de un programa ejecutado y un método de depuración de programa para depurar un programa que usa el aparato simulador de programa.
Antecedentes de la técnica
En general, en el dispositivo simulador de programas convencional, como un método de ejecución de un programa para la depuración de un programa, tales como para detener el programa ejecutado por la interrupción o similar de la configuración y los puntos de interrupción terminal externo, conocido sistema de ejecución normal Lo ha hecho. Además, el programa en el caso del lenguaje de máquina y ejecuta una instrucción a la vez, en el caso del lenguaje de alto nivel se esquema paso a paso también conocido para ejecutar las instrucciones de cada línea. En cada uno de estos esquemas, cuando se realiza la depuración del programa, el programa se ejecuta en la dirección de avance.
Por otro lado, recientemente, al depurar un programa, se propone ejecutar el programa en la dirección inversa. Tal método de depuración de programas es un método de ejecución de pasos de retroceso que hace que el programa retroceda paso a paso.
Tarea de solución
Al depurar un programa por el dispositivo simulador de programas, una parte del programa de cada recurso (es decir, un programa y la dirección de la memoria, el contenido del registro, etc. de la CPU la ejecución del programa) puede que desee cambiar el valor de la re ejecutado Ahí En tal caso, un dispositivo simulador convencional, hay dos, como se describe anteriormente, el programa desde el esquema de dirección de inicio para ser re-ejecutado en la dirección hacia adelante, y una instrucción a la inversa de tiempo de un método en el que un paso a paso.
Sin embargo, en el primer caso, existe la desventaja de que se requiere una gran cantidad de tiempo para volver a ejecutar cuando la parte del programa que se va a volver a ejecutar existe en la parte final del programa. En este último caso, pero no causa problemas particulares si el número de varios pasos de paso de marcha atrás cientos si tales llamadas a subprogramas tan grande como el paso y se hace a una instrucción a la vez que se remonta a la subrutina Lleva un tiempo considerable regresar a la dirección de inicio de la llamada también. Por lo tanto, la presente invención tiene como objetivo acortar el tiempo de trabajo de depuración cuando se vuelve a depurar ejecutando de nuevo una parte de este programa en el momento de la depuración del programa.
Solución
Tales problemas actuales invención resolver sostiene la unidad de creación de instrucciones inverso que crea una instrucción inversa a partir de una instrucción de un programa ejecutado en la dirección hacia adelante, la dirección de instrucción y un orden inverso correspondiente de la realizada una primera porción de la pila, y la segunda porción pila donde la dirección de la función en la dirección principal de una función de una pluralidad de instrucciones, el valor de los recursos que indica el contenido de la dirección de memoria y los registros en ese momento se escriben, una segunda pila una unidad de restauración para restaurar el valor de la parte del recurso, las instrucciones de funcionamiento inverso fue a buscar desde la primera parte pila realiza la marcha atrás de instrucciones de la función basada en el valor de los recursos de la función tomado de la segunda unidad de apilamiento Y una unidad de ejecución de instrucciones para ejecutar cada instrucción en la dirección positiva. Además, cuando se depura un programa, y ​​se llevó a cabo a partir de una instrucción de un programa ejecutado en la dirección hacia adelante para crear comando de retroceso, y la dirección que conduce a la dirección de la función de una función de una pluralidad de instrucciones, la dirección de memoria en ese momento y conservando el valor de los recursos que se indican los contenidos y similares del registro, cuando se re-programa de depuración, revertir las instrucciones conservan una instrucción a un tiempo de ejecución para hacer marcha atrás instrucciones y ejecutable desde la dirección inicial de la función .
Al realizar la depuración del programa, y ​​se mantiene de una instrucción de un programa ejecutado en la dirección hacia adelante para crear comando de retroceso, y llevando la dirección con la dirección de la función de una función de una pluralidad de instrucciones, direcciones de memoria y el registro en ese momento el tiempo que conserva el valor del recurso que indica los contenidos, etc., cuando se realiza la depuración re-programa, se conservó la instrucción inversa una instrucción a un tiempo de ejecución para hacer marcha atrás instrucción y ejecuta secuencialmente la dirección de avance de la dirección de inicio de la función .
De aquí en adelante, la presente invención se describirá con referencia a los dibujos. La figura 3 es un diagrama de bloques que muestra una realización de la presente invención. En la figura, 1 es el programa de destino de depuración (en lo sucesivo, un programa) unidad de almacenamiento que se almacena, 2 es un aparato simulador de programas para la depuración de un programa en la unidad de almacenamiento 1.
El aparato simulador de programa 2 está configurado de la siguiente manera. Es decir, 21 pila unidad de direcciones e instrucciones viceversa cada instrucción de un programa recuperada de la unidad de almacenamiento 1 como datos para cada instrucción y después de primero-in de datos es, se extrae 22 el programa almacenado iniciar información de la dirección de una pluralidad de funciones, tales como subrutina o de servicio de interrupción rutina de instrucciones en el programa durante la ejecución, y una dirección de memoria (no mostrado) se accede por la unidad de ejecución de instrucciones 26 que se describirá posteriormente que incluye una CPU o similar en ese momento, la junto con el contenido y la información de los valores de registro y similares de la unidad de ejecución de instrucciones 26 se almacena para cada función como un valor de datos de recursos, apilar porción después de primero-in de datos es, 23 del programa recuperados de la unidad de almacenamiento 1 Y genera una instrucción inversa de cada instrucción y la almacena en la sección de pila 21.
Además, 24 es una unidad de escritura para el almacenamiento de dicho valor de los recursos de la función en la parte de pila del programa 22, 25 unidad de reposición para restablecer lee el valor de los recursos de la sección de la pila 22, 26 de la pila 21 sobre la depuración re-programa en la unidad de ejecución de instrucciones para la ejecución de la etapa de la instrucción inversa por la ejecución paso a basado en el valor de los recursos de la función restaurada por la unidad de restauración 25 y ejecuta el programa en la dirección inversa cada instrucción secuencialmente dirección positiva de la función (dirección normal) Ahí En la unidad de creación de instrucciones inversa anteriormente mencionado 23, por ejemplo, si las instrucciones de incremento descargue de la unidad de almacenamiento 1 (instrucción para aumentar un valor), a fin de disminuirlo (instrucción para reducir un único valor) Se genera una instrucción inversa.
A continuación, se describirá un esquema del funcionamiento del dispositivo simulador de programa 2 configurado como se describió anteriormente. Al depurar un programa en la unidad de almacenamiento 1, un dispositivo simulador de programas 2, la unidad de ejecución de instrucciones 26 sacado de la unidad de almacenamiento 1 1 instrucción a la vez el programa para ejecutar cada instrucción de la secuencia de programa en la dirección positiva. En este caso, la unidad de creación de instrucciones inversas 23 genera órdenes inversas de las instrucciones recuperadas de la unidad de almacenamiento 1 y las almacena secuencialmente en la unidad de apilamiento 21. Si la instrucción recuperada es una función tal como una subrutina o similar, la unidad de escritura 24 almacena los valores de recurso descritos anteriormente con respecto a esta función en la unidad de pila 22.
En este caso, cuando se opera la primera clave necesaria para reprogramar operador de depuración de depuración (no se muestra) se produce, la unidad de ejecución de instrucciones 26, entre las instrucciones inversas almacenados en la unidad de pila 21, la mayoría de las tiendas Saque y ejecute el comando inverso más nuevo de Posteriormente, cuando se realiza nuevamente la primera operación de tecla, la unidad de ejecución de instrucción 26 recupera y ejecuta una nueva instrucción inversa almacenada a continuación en la unidad de pila 21. De esta forma, las instrucciones se ejecutan un paso a la vez hacia atrás.
Además, cuando la depuración re-programa, el operador de depuración opera la segunda llave (no mostrada), la unidad de restauración 25, entre el valor de los recursos para cada función almacenada en el apilador 22 mayoría de las tiendas nueva Y suministra el valor del recurso a la unidad de ejecución del comando de lectura 26. En base a este valor de recurso, la unidad de ejecución de instrucciones 26 ejecuta secuencialmente un programa de una función correspondiente a este valor de recurso desde la dirección de cabecera en la dirección positiva. Por lo tanto, cuando se realiza la reanudación Tal depuración depuración de programas de depuración al depurar un programa nuevo, no sólo puede la instrucción de la instrucción es en un momento posterior funcionamiento, fáciles unidades de función de depuración y re corto Se puede hacer a tiempo. Por lo tanto, al depurar una función (subrutina o similar), como cientos de pasos en particular, el tiempo requerido para el trabajo de depuración puede acortarse considerablemente.
A continuación, la operación detallada de la parte principal del aparato simulador de programa 2 se describirá en detalle en base a los diagramas de flujo de la figura 1 y la figura 2. En primer lugar, se describirá la operación en el caso donde el programa se ejecuta en la dirección de avance en el momento de la depuración del programa mostrado en la figura 2. Al depurar un programa en la unidad de almacenamiento 1 como se ha descrito anteriormente, el dispositivo simulador de programas 2 es para ser ejecutado por la aplicación del programa desde la unidad de almacenamiento 1 en una instrucción a la vez ir a buscar la unidad de ejecución de instrucciones 26, en este caso, el aparato simulador 2 , En el paso S1 se determina si la instrucción captada de la unidad de almacenamiento 1 corresponde o no a la instrucción en la dirección de inicio de la función descrita anteriormente.
Y si la instrucción extraída no es enseñanza de la dirección de inicio de la función, la unidad de creación de instrucciones inversa 23 para leer las instrucciones para generar una instrucción inverso de las instrucciones de la ejecución en el paso S3 en la etapa S2. A continuación, la dirección de esta instrucción y la instrucción inversa generada son empujadas a la sección de pila 21 por la sección 23 de creación de instrucciones inversas y almacenadas en la etapa S4. Si el comando recuperado corresponde al comando en la dirección de inicio de la función, la unidad de escritura 24 empuja el valor de cada recurso de esta función a la unidad de pila 22 y la almacena en el paso S5. A continuación, en la etapa S2 S4, la unidad de generación de instrucciones inversas 23 crea y almacena la orden inversa de la misma manera que la descrita anteriormente.
Por lo tanto la inversa unidad de pila de instrucciones 21, también después del valor de los recursos de la función se almacena en la unidad de pila 22, el dispositivo simulador 2 determina si existe o no una capacidad libre de la pila 21 o la pila 22 en el paso S6 Si hay una vacante, el comando extraído es ejecutado por la unidad de ejecución de instrucciones 26 en el paso S7. Además, si no hay espacio en el volumen de la pila después de borrar los datos antiguos en la unidad de apilamiento correspondiente (comando de edad) en el paso S8, para llevar a cabo la ejecución de la instrucción a la unidad de ejecución de instrucciones 26 en el paso S7.
A continuación, en el paso S9, el dispositivo simulador 2 determina si se ejecuta o no el seguimiento de la instrucción. Y esto es la simulación de la etapa S10 si el 'NO' (es decir, de depuración) hasta el final de la 'SÍ', cada instrucción en la unidad de almacenamiento de programa 1 se extraen secuencialmente, generado y almacenado o función de la orden inverso Se almacenan y las instrucciones recuperadas se ejecutan secuencialmente.
La depuración del programa se realiza de esta manera. Aquí, se hace necesario volver depuración de programas ejecutados durante la depuración de programas mediante la ejecución de estos programas, ya sea cuando se acciona la primera clave o la segunda llave (no se muestra) por el operador de depuración, el simulador la 'realiza la instrucción de vuelta atrás' aparato de determinación de 2 en el paso S9 determina 'SÍ', en este caso, comienza el retroceso de procesamiento de instrucciones que se muestran en el diagrama de flujo de la Fig. 1 se describe más adelante en el paso S11.
Es decir, se determina 'para volver al comienzo de la función' por la segunda operación de tecla en el paso S21 en la Fig. 1, si esto es 'SÍ', se determina si existe o no una no ocupada en la unidad de pila 22 en el paso S22. Y si no hay espacio libre en la unidad de pila 22, con respecto a la unidad de restauración 25, la mayor capacidad de almacenamiento de la nueva Pop valor de recurso (eliminado) para hacer que la unidad de ejecución de instrucciones de cada valores de recursos para cada función almacenada en la unidad de pila 22 en el paso S23 26. En base a este valor de recurso, la unidad de ejecución de instrucciones 26 ejecuta secuencialmente un programa de una función correspondiente a este valor de recurso desde la dirección de cabecera en la dirección positiva.
Cuando se completa la ejecución del programa de esta función, el aparato simulador 2 vuelve al paso S21 mediante 'NO' en el paso S24 '¿Desea finalizar la instrucción?' Una vez más, se realiza la segunda operación de tecla, en el paso S23 en el paso S22 'apilar 22 gratis? A' a 'NO' en el siguiente valor nuevo recurso almacenado está elevado desde la unidad de pila de instrucciones 22 Se entrega a la unidad de ejecución 26, y de forma similar se ejecuta el programa de la función correspondiente. Por lo tanto, recuperado secuencialmente cada valor de los recursos de la unidad de pila 22, por el programa para cada función en base a cada valor de recursos se lleva a cabo, la unidad de pila 22 se convierte en un estado completamente vacío, la determinación en la etapa S22 es 'SI' , El dispositivo simulador 2 finaliza la ejecución del programa en el momento de volver a depurar. Además, incluso si se acciona la tecla de finalización (no mostrado) para la terminación de la determinación vuelta atrás de la instrucción en esta re depuración en el paso S24 se convierte en 'SI', el aparato simulador 2 termina la ejecución del programa en el momento de re-depuración.
A continuación, cuando el operador de depuración realiza la primera operación de clave para retroceder la instrucción, la determinación de 'volver al comienzo de la función?' En el paso S21 es 'NO'. En este caso, el dispositivo simulador 2 juzga si la porción de pila 21 está vacía o no en la etapa S25. Y si no hay espacio libre en la unidad de pila 21, la unidad de ejecución de instrucciones 26 en el dispositivo simulador 2, la dirección más reciente del almacenamiento y el comando de retroceso entre las direcciones e instrucciones viceversa de cada instrucción almacenados en la unidad de pila 21 en el paso S26 , Y ejecuta esta instrucción inversa en el paso S27.
Cuando se completa la ejecución de esta instrucción inversa, el proceso vuelve al paso S21 a través de 'NO' en el paso S24 '¿Desea finalizar la instrucción?' Una vez más, cuando se realiza la primera operación de tecla, el dispositivo simulador 2, el proceso pasa a la etapa S25 a través del 'NO' en el 'volver al principio de la función?' En la etapa S21, de manera similar apilar unidad en el paso S25 21 está vacío o no. En este caso, si la unidad de inactividad pila estado 21, en la etapa S26, con respecto a la unidad de ejecución de instrucciones 26, a continuación, las nuevas instrucciones inversa almacenados ejecutado en el paso S27 se extrae de la unidad de pila 21.
Por lo tanto, al ser ejecutado se recupera cada uno instrucciones opuestos apilan secuencialmente unidad 21, la porción de pila 21 se vuelve completamente vacía, la determinación en la etapa S25 se convierte en 'SI', el dispositivo simulador 2 en el momento de re-depuración de programas Está completo. Además, incluso cuando dicha tecla Finalizar para terminar la determinación vuelta atrás de la instrucción durante la re-depurado es operado en el paso S24 se convierte en 'SI', el aparato simulador de 2 termina la ejecución del programa en el momento de volver a la depuración.
Efecto de la invención
Según la presente invención descrita anteriormente, la dirección de la función en la dirección de comienzo de la función cuando la depuración de un programa realizado por la creación de una instrucción inversa a partir de una instrucción de un programa ejecutado en la dirección hacia adelante, y que comprende una pluralidad de instrucciones , mientras que conserva el valor de los recursos que muestran el contenido de una dirección de memoria y un registro o similar en ese momento, en el momento de los programas de re depuración, retenido instrucción inversa una instrucción a un tiempo de ejecución para hacer marcha atrás instrucciones, y de forma secuencial desde la dirección de inicio de la función De modo que el tiempo requerido para el trabajo de depuración en el caso de volver a depurar un programa de funciones como cientos de pasos puede acortarse enormemente.
La figura 1 es un diagrama de flujo que muestra el funcionamiento de una parte principal de un aparato simulador de programa de acuerdo con la presente invención.
La figura 2 es un diagrama de flujo que muestra una operación en el momento de la depuración del programa del dispositivo de realización.
La figura 3 es un diagrama de bloques que muestra una configuración de una parte principal del aparato de realización descrito anteriormente.
1 ... sección de almacenamiento, 2 ... aparato de simulación de programa, 21, 22 ... sección de pila, 23 ... instrucción de creación inversa de sección, 24 ... sección de escritura, 25 ... sección de restauración, 26 ... sección de ejecución de instrucción.
Reclamo
Una primera unidad de pila para mantener una dirección de una instrucción a ejecutar y una instrucción inversa correspondiente, y una segunda unidad de pila para mantener una dirección de una instrucción a ejecutar y una instrucción inversa correspondiente, iniciar información de dirección ,, y las segundas porciones de la pila el contenido como la dirección de la memoria y el registro se escribe como un valor de los recursos de la función que corresponde a la información de la dirección cabeza de la segunda porción de pila de una función de una pluralidad de instrucciones una unidad de restauración para restaurar el valor del recurso, las instrucciones de ejecución inversos obtienen de la primera porción de la pila lleva a cabo instrucciones de rastreo, cada instrucción de la función sobre la base del valor de los recursos de la función restaurada retirado de la segunda unidad de apilamiento Un simulador de programa caracterizado por tener una función para ejecutar una instrucción inversa para cada instrucción y una función de ejecución alternativa para cada función Ubicación.
Cuando la depuración del programa de la reivindicación 2 sostiene de una instrucción de un programa ejecutado en la dirección hacia adelante para crear orden inverso, y la función en la dirección de inicio de una función de una pluralidad de instrucciones en dicho programa dirección, mientras que conserva el valor de los recursos que indica el contenido de la dirección de la memoria y los registros que se accede en ese momento, cuando se re-programa de depuración, cada uno de los programas mediante la ejecución de una instrucción a la vez invierta las instrucciones del retenidos Ejecutando hacia atrás de la instrucción y habilitando cada instrucción de la función secuencialmente en la dirección positiva desde la dirección de inicio de la función.
Dibujo :
Application number :1996-320813
Inventors :日本電気株式会社
Original Assignee :河内義一