MATLAB Language Lavorare con i punti di interruzione


Esempio

Definizione

Nello sviluppo del software, un punto di interruzione è un punto di arresto o di pausa intenzionale in un programma, creato per scopi di debug.

Più in generale, un punto di interruzione è un mezzo per acquisire conoscenze su un programma durante la sua esecuzione. Durante l'interruzione, il programmatore ispeziona l'ambiente di test (registri di uso generale, memoria, registri, file, ecc.) Per scoprire se il programma funziona come previsto. In pratica, un breakpoint consiste in una o più condizioni che determinano quando l'esecuzione di un programma deve essere interrotta.

-Wikipedia

Punti di interruzione in MATLAB

Motivazione

In MATLAB, quando l'esecuzione si ferma su un punto di interruzione, le variabili esistenti nello spazio di lavoro corrente (noto anche come scope ) o in qualsiasi area di lavoro chiamante possono essere ispezionate (e di solito anche modificate).

Tipi di punti di interruzione

MATLAB consente agli utenti di inserire due tipi di punti di interruzione nei file .m :

  • Punti di interruzione standard (o " non limitati ") (mostrati in rosso) - sospendono l'esecuzione ogni volta che viene raggiunta la linea evidenziata.
  • Punti di rottura "condizionali" (indicati in giallo) - sospendono l'esecuzione ogni volta che viene raggiunta la linea contrassegnata E la condizione definita nel punto di interruzione viene valutata come true .

Diversi simboli di breakpoint nella GUI

Posizionamento dei punti di interruzione

Entrambi i tipi di punti di interruzione possono essere creati in diversi modi:

  • Utilizzando la GUI di MATLAB Editor, facendo clic con il pulsante destro sulla linea orizzontale accanto al numero di riga.

  • Utilizzando il 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
    
  • Utilizzo delle scorciatoie da tastiera: la chiave predefinita per la creazione di un punto di interruzione standard su Windows è F12 ; la chiave predefinita per i punti di interruzione condizionali non è impostata .

Disabilitare e riattivare i punti di interruzione

Disabilitare un punto di interruzione per ignorarlo temporaneamente: i punti di interruzione disabilitati non interrompono l'esecuzione. La disattivazione di un punto di interruzione può essere eseguita in diversi modi:

  • Fare clic con il pulsante destro del mouse sul cerchio del punto di interruzione rosso / giallo> Disattiva punto di interruzione.
  • Fare clic con il tasto sinistro su un punto di interruzione condizionale (giallo).
  • Nella scheda Editor> Punti di interruzione> Abilita \ Disabilita.

Rimozione dei punti di interruzione

Tutti i punti di interruzione rimangono in un file fino a quando non vengono rimossi, manualmente o automaticamente. I punti di interruzione vengono cancellati automaticamente quando si termina la sessione MATLAB (cioè terminando il programma). La cancellazione manuale dei punti di interruzione avviene in uno dei seguenti modi:

  • Utilizzando il comando dbclear :

    dbclear all
    dbclear in file   
    dbclear in file at location    
    dbclear if condition
    
  • Fare clic con il pulsante sinistro su un'icona di punto di interruzione standard o un'icona di punto di interruzione condizionale disabilitata.

  • Fare clic con il tasto destro su qualsiasi punto di interruzione> Cancella punto di interruzione.

  • Nella scheda Editor> Punti di interruzione> Cancella tutto.

  • Nelle versioni pre-R2015b di MATLAB, utilizzando il comando clear .

Ripresa dell'esecuzione

Quando l'esecuzione viene messa in pausa in un punto di interruzione, esistono due modi per continuare l'esecuzione del programma:

  • Esegui la riga corrente e metti nuovamente in pausa prima della riga successiva.

    F10 1 nell'Editor, dbstep nella finestra di comando, "Passo" in Barra multifunzione> Editor> DEBUG.

  • Esegui fino al prossimo punto di interruzione (se non ci sono più punti di interruzione, l'esecuzione procede fino alla fine del programma).

    F12 1 nell'editor, dbcont nella finestra di comando, "Continua" in Barra multifunzione> Editor> DEBUG.


1 - predefinito su Windows.