Buscar..


Sintaxis

  • dbstop en el archivo en la ubicación si la expresión

Parámetros

Parámetro Detalles
expediente Nombre del archivo .m (sin extensión), por ejemplo, fit . Este parámetro es (Requerido) a menos que se establezcan tipos especiales de punto de interrupción condicional, como dbstop if error o dbstop if naninf .
ubicación Número de línea donde se debe colocar el punto de interrupción. Si la línea especificada no contiene código ejecutable, el punto de interrupción se colocará en la primera línea válida después de la especificada.
expresión Cualquier expresión o combinación de las mismas que se evalúe como un valor booleano. Ejemplos: ind == 1 , nargin < 4 && isdir('Q:\') .

Trabajando con Breakpoints

Definición

En el desarrollo de software, un punto de interrupción es un lugar para detener o pausar intencionalmente un programa, implementado para fines de depuración.

Más generalmente, un punto de interrupción es un medio para adquirir conocimiento sobre un programa durante su ejecución. Durante la interrupción, el programador inspecciona el entorno de prueba (registros de propósito general, memoria, registros, archivos, etc.) para averiguar si el programa está funcionando como se esperaba. En la práctica, un punto de interrupción consiste en una o más condiciones que determinan cuándo se debe interrumpir la ejecución de un programa.

-Wikipedia

Puntos de interrupción en MATLAB

Motivación

En MATLAB, cuando la ejecución se detiene en un punto de interrupción, las variables existentes en el área de trabajo actual (también conocido como alcance ) o cualquiera de las áreas de trabajo que llaman, se pueden inspeccionar (y generalmente también se pueden modificar).

Tipos de puntos de ruptura

MATLAB permite a los usuarios colocar dos tipos de puntos de interrupción en archivos .m :

  • Puntos de interrupción estándar (o "no restringidos ") (mostrados en rojo): pausa la ejecución cada vez que se alcanza la línea marcada.
  • Puntos de interrupción "condicionales" (mostrados en amarillo): pausa la ejecución cada vez que se alcanza la línea marcada Y la condición definida en el punto de interrupción se evalúa como true .

Diferentes símbolos de punto de interrupción en la GUI

Colocando puntos de ruptura

Ambos tipos de puntos de interrupción se pueden crear de varias maneras:

  • Usando la GUI del editor de MATLAB, haga clic derecho en la línea horizontal al lado del número de línea.

  • Usando el comando dbstop :

    % Create an unrestricted breakpoint:
    dbstop in file at location
    % Create a conditional breakpoint:
    dbstop in file at location if expression
    
    % Examples and special cases: 
    dbstop in fit at 99 % Standard unrestricted breakpoint.
    
    dbstop in fit at 99 if nargin==3 % Standard conditional breakpoint.
    
    dbstop if error % This special type of breakpoint is not limited to a specific file, and
                    % will trigger *whenever* an error is encountered in "debuggable" code.
    
    dbstop in file % This will create an unrestricted breakpoint on the first executable line
                   % of "file".
    
    dbstop if naninf % This special breakpoint will trigger whenever a computation result 
                     % contains either a NaN (indicates a division by 0) or an Inf
    
  • Uso de métodos abreviados de teclado: la tecla predeterminada para crear un punto de interrupción estándar en Windows es F12 ; la clave por defecto para los puntos de interrupción condicionales no está definido.

Deshabilitar y volver a habilitar los puntos de interrupción

Deshabilite un punto de interrupción para ignorarlo temporalmente: los puntos de interrupción deshabilitados no pausan la ejecución. La desactivación de un punto de interrupción se puede hacer de varias maneras:

  • Haga clic con el botón derecho en el círculo rojo / amarillo del punto de interrupción> Deshabilitar el punto de interrupción.
  • Clic izquierdo en un punto de quiebre condicional (amarillo).
  • En la pestaña Editor> Puntos de interrupción> Habilitar \ Deshabilitar.

Eliminar puntos de interrupción

Todos los puntos de interrupción permanecen en un archivo hasta que se eliminen, ya sea de forma manual o automática. Los puntos de interrupción se borran automáticamente al finalizar la sesión de MATLAB (es decir, al finalizar el programa). La eliminación manual de los puntos de interrupción se realiza de una de las siguientes maneras:

  • Usando el comando dbclear :

    dbclear all
    dbclear in file   
    dbclear in file at location    
    dbclear if condition
    
  • Haga clic con el botón izquierdo en un icono de punto de interrupción estándar o un icono de punto de interrupción condicional desactivado.

  • Haga clic derecho en cualquier punto de interrupción> Borrar punto de interrupción.

  • En la pestaña Editor> Puntos de interrupción> Borrar todo.

  • En versiones anteriores a R2015b de MATLAB, usando el comando clear .

Reanudar la ejecución

Cuando la ejecución se detiene en un punto de interrupción, hay dos formas de continuar ejecutando el programa:

  • Ejecute la línea actual y vuelva a hacer una pausa antes de la línea siguiente.

    F10 1 en el Editor, dbstep en la ventana de comandos, "Paso" en Ribbon> Editor> DEBUG.

  • Ejecutar hasta el siguiente punto de interrupción (si no hay más puntos de interrupción, la ejecución continúa hasta el final del programa).

    F12 1 en el Editor, dbcont en la ventana de comandos, "Continuar" en Ribbon> Editor> DEBUG.


1 - por defecto en Windows.

Depuración de código Java invocado por MATLAB

Visión general

Para depurar las clases Java que se llaman durante la ejecución de MATLAB, es necesario realizar dos pasos:

  1. Ejecute MATLAB en modo de depuración JVM.
  2. Adjunte un depurador de Java al proceso MATLAB.

Cuando MATLAB se inicia en el modo de depuración JVM, aparece el siguiente mensaje en la ventana de comandos:

JVM is being started with debugging enabled.
Use "jdb -connect com.sun.jdi.SocketAttach:port=4444" to attach debugger.

Final de MATLAB

Windows:

Cree un acceso directo al ejecutable de MATLAB ( matlab.exe ) y agregue la bandera -jdb al final como se muestra a continuación:

introduzca la descripción de la imagen aquí

Al ejecutar MATLAB utilizando este acceso directo, se habilitará la depuración de JVM.

Alternativamente, el archivo java.opts se puede crear / actualizar. Este archivo se almacena en "matlab-root \ bin \ arch", donde "matlab-root" es el directorio de instalación de MATLAB y "arch" es la arquitectura (por ejemplo, "win32").

Se debe agregar lo siguiente en el archivo:

-Xdebug
-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n

Final del depurador

IntelliJ IDEA

Adjuntar este depurador requiere la creación de una configuración de "depuración remota" con el puerto expuesto por MATLAB:

Paso 1: Creando una configuración de depuración

Entonces se inicia el depurador:

Paso 2: Iniciar el depurador

Si todo funciona como se esperaba, aparecerá el siguiente mensaje en la consola:

Registro de salida cuando todo está funcionando



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow