Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

Depurar un programa de MATLAB

Puede depurar el programa de MATLAB® de forma interactiva en el editor o de forma programática mediante la depuración de funciones en la ventana de comandos. Ambos métodos son intercambiables. Para depurar un programa en Live Editor o en el editor de MATLAB Online™, consulte .

Antes de empezar a depurar, asegúrese de que el programa esté guardado y de que el programa y los archivos a los que llama estén presentes en la ruta de búsqueda o en la carpeta actual.

  • Si ejecuta un archivo con cambios no guardados desde el editor, el archivo se guarda automáticamente antes de ejecutarse.

  • Si ejecuta un archivo con cambios no guardados desde la ventana de comandos, el software de MATLAB ejecuta la versión guardada del archivo. Por tanto, no se muestran los resultados de sus cambios.

Establecer un punto de interrupción

Establezca puntos de interrupción para pausar la ejecución de un archivo de MATLAB y poder examinar así el valor o las variables donde cree que podría haber un problema. Puede establecer puntos de interrupción con el editor, con las funciones de la ventana de comandos o mediante ambas opciones.

Hay tres tipos diferentes de puntos de interrupción: estándar, condicional y de error. Para agregar un punto de interrupción estándar en el editor, haga clic en el callejón de puntos de interrupción en la línea ejecutable en la que desee establecer el punto de interrupción. El callejón de puntos de interrupción es la columna estrecha situada en el lado izquierdo del editor, a la derecha del número de línea. También puede utilizar la tecla F12 para establecer el punto de interrupción.

Las líneas ejecutables se indican con una raya (—) en el callejón de puntos de interrupción. Por ejemplo, haga clic en el callejón de puntos de interrupción situado junto a la línea 2 del código siguiente para agregar un punto de interrupción en dicha línea.

Si una instrucción ejecutable abarca varias líneas, puede establecer un punto de interrupción en cada línea de dicha instrucción, aunque las líneas adicionales no tengan una — (raya) en el callejón de puntos de interrupción. Por ejemplo, en este código, puede establecer un punto de interrupción en las cuatro líneas:

Para obtener más información sobre los diferentes tipos de puntos de interrupción, consulte Set Breakpoints.

Ejecutar un archivo

Después de establecer puntos de interrupción, ejecute el archivo desde la ventana de comandos o desde el editor. Al ejecutar el archivo, se generan estos resultados:

  • El botón Run cambia al botón Pause .

  • La línea de comandos de la ventana de comandos cambia a K>>, lo que indica que MATLAB se encuentra en modo de depuración y que el teclado tiene el control.

  • MATLAB hace una pausa en el primer punto de interrupción del programa. En el editor, una flecha verde a la derecha del punto de interrupción indica la pausa. El programa no ejecuta la línea donde tiene lugar la pausa hasta que se reanuda la ejecución. Por ejemplo, aquí el depurador hace una pausa antes de que el programa ejecute x = ones(1,10);.

  • MATLAB muestra el área de trabajo actual en Function Call Stack, en la pestaña Editor de la sección Debug.

    Si utiliza funciones de depuración desde la ventana de comandos, utilice dbstack para ver la pila de llamadas a funciones.

Para obtener más información sobre el uso de la pila de llamadas a funciones, consulte View Variable Value Outside Current Workspace

Pausar un archivo en ejecución

Para pausar la ejecución de un programa mientras se está ejecutando, vaya a la pestaña Editor y haga clic en el botón Pause . MATLAB pausa la ejecución en la siguiente línea ejecutable y el botón Pause cambia al botón Continue . Para continuar con la ejecución, pulse el botón Continue .

La pausa es útil si desea comprobar el progreso de un programa que se ejecuta durante mucho tiempo para asegurarse de que se esté ejecutando como se esperaba.

Nota

Al hacer clic en el botón de pausa, es posible que MATLAB haga una pausa en un archivo fuera de su propio archivo de programa. Al pulsar el botón Continue , se reanuda la ejecución normal sin cambiar los resultados del archivo.

Buscar y resolver un problema

Mientras el código se encuentra en pausa, puede ver o cambiar los valores de las variables o modificar el código.

Ver o cambiar una variable mientras se depura

Muestre el valor de una variable mientras se depura para comprobar si una línea de código ha producido el resultado esperado o no. Para ello, sitúe el puntero del ratón a la izquierda de la variable. El valor actual de la variable aparece en un consejo sobre datos.

El consejo sobre datos se mantiene a la vista hasta que se mueve el puntero. Si no aparece el consejo sobre datos, haga clic en la línea que contiene la variable y, después, mueva el puntero junto a la variable. Para obtener más información, consulte Examine Values While Debugging.

Puede cambiar el valor de una variable mientras se depura para comprobar si el nuevo valor produce los resultados esperados. Con el programa en pausa, asigne un nuevo valor a la variable en la ventana de comandos, el navegador del área de trabajo o el editor de variables. Después, siga ejecutando o recorriendo el programa.

Por ejemplo, aquí MATLAB se encuentra en pausa dentro de un bucle for en el que n = 2:

  • Escriba n = 7; en la línea de comandos para cambiar el valor actual de n de 2 a 7.

  • Pulse Continue para ejecutar la siguiente línea de código.

MATLAB ejecuta la línea de código x(n) = 2 * x(n-1); con n = 7.

Modificar una sección de código mientras se depura

Puede modificar una sección de código mientras se depura para probar posibles correcciones sin tener que guardar los cambios. Por lo general, se recomienda modificar un archivo de MATLAB una vez terminada la depuración y, después, guardar la modificación y ejecutar el archivo. De lo contrario, se podrían obtener resultados inesperados. Sin embargo, hay situaciones en las que se desea experimentar durante la depuración.

Para modificar un programa mientras se depura:

  1. Mientras el código se encuentra en pausa, modifique una parte del archivo que aún no se ha ejecutado.

    Los puntos de interrupción se vuelven grises, lo que indica que no son válidos.

  2. Seleccione todo el código situado tras la línea en la que MATLAB se encuentra en pausa, haga clic con el botón secundario y, después, seleccione Evaluate Selection en el menú contextual.

Una vez finalizada la evaluación del código, detenga la depuración y guarde o deshaga los cambios realizados antes de continuar con el proceso de depuración.

Recorrer un archivo

Durante la depuración, puede recorrer un archivo de MATLAB, haciendo una pausa en los puntos en los que desee examinar los valores.

En esta tabla se describen las acciones de depuración disponibles y los diferentes métodos que puede utilizar para ejecutarlas.

Descripción

Botón de la barra de herramientas

Alternativa (función)

Continúe con la ejecución del archivo hasta la línea donde se encuentra el cursor. También disponible en el menú contextual.

Run to Cursor

Ninguna

Ejecutar la línea actual del archivo.

Step

dbstep

Ejecutar la línea actual del archivo y, si la línea es una llamada a otra función, entrar en dicha función.

Step In

dbstep in

Reanudar la ejecución del archivo hasta su finalización o hasta que se encuentre otro punto de interrupción.

Continue

dbcont

Después de entrar en ella, ejecutar el resto de la función local o función llamada, salir de ella y hacer una pausa.

Step Out

dbstep out

Pausar el modo de depuración.

Pause

Ninguna

Salir del modo de depuración.

Quit Debugging

dbquit

Finalizar la sesión de depuración

Después de identificar un problema, finalice la sesión de depuración yendo a la pestaña Editor y haciendo clic en Quit Debugging . Debe finalizar la sesión de depuración si desea modificar y guardar el archivo o ejecutar otros programas en MATLAB.

Después de salir de la depuración, los indicadores de pausa desaparecen de la pantalla del editor y la línea de comandos >> habitual vuelve a aparecer en la ventana de comandos en lugar de K>>. Ya no puede acceder a la pila de llamadas.

Si el software de MATLAB no responde cuando se hace una pausa en un punto de interrupción, pulse Ctrl+c para volver a la línea de comandos de MATLAB.

Temas relacionados