Breakpoint

Da Wikipedia, l'enciclopedia libera.

Nell'ambito dello sviluppo del software, un breakpoint è un punto di interruzione nel codice di un programma, normalmente usato per scopi di debugging. Un breakpoint è sostanzialmente uno strumento che consente di eseguire un programma con la possibilità di interromperlo quando si verificano determinate condizioni, allo scopo di acquisire informazioni su un programma in esecuzione. In particolare, il programmatore può analizzare eventuali file di log, lo stato delle variabili o dei registri, e così via, per verificare se il programma funziona come previsto o, in caso contrario, per risalire alla causa del malfunzionamento.

Condizioni per un breakpoint[modifica | modifica wikitesto]

In pratica, un breakpoint è definito in base ad una serie di condizioni che determinano quando il programma debba essere interrotto.

La versione "classica" del breakpoint, quella più semplice, interrompe il programma immediatamente prima che venga eseguita una certa istruzione specificata dal programmatore, presente in una certa riga del codice.

In altri casi (quelli più comuni), l'esecuzione del programma può essere interrotta:

  • quando si tenta di leggere o scrivere su una determinata variabile o un'area di memoria (watchpoint);
  • quando una variabile viene modificata, così da assumere un certo valore ben definito (watchpoint);
  • quando viene lanciata un'eccezione (in linguaggi quali C, Java, ecc.);
  • all'entrata o all'uscita di una certa procedura o metodo.

Queste condizioni, seppure semplici di per sé, facilitano notevolmente il compito del programmatore. Ad esempio, il più delle volte esse rendono possibile interrompere il programma solo quando necessario, cioè nei casi in cui sia superfluo controllare la validità dello stato delle variabili nel programma quando queste assumono determinati valori (che già a priori si sanno essere corretti).

Caratteristiche[modifica | modifica wikitesto]

I tipi di breakpoint utilizzabili per il controllo di un programma dipendono dal linguaggio utilizzato e soprattutto dall'IDE. IDE diversi forniscono tipi di breakpoint con caratteristiche sempre più avanzate e precise, per facilitare l'operazione di debugging.

Nei linguaggi multithreaded, in genere è possibile scegliere se un breakpoint debba interrompere solo il thread coinvolto o anche gli altri threads.