giovedì 29 marzo 2018

VISUAL STUDIO - BREAKPOINT IGNORATO

A volte può capitare che, aprendo un codice in modalità Release, un breakpoint nel codice non venga intercettato.






Cos'è un Breakpoint?

Non è una domanda banale. Un breakpoint [wikipedia] è uno strumento offerto da un IDE [wikipedia] utile in fase di debug del software, in grado di interrompere l'esecuzione di un programma in un punto specifico del codice sorgente, punto chiamato infatti breakpoint (punto di interruzione).
Esempio di breakpoint
Esempio di breakpoint


Breakpoint ignorato

Nonostante la natura di un breakpoint, a volte può capitare che questo venga ignorato durante il debug e il programma non venga interrotto in concomitanza della esecuzione della riga specifica. Come mai?
Esempio di Breakpoint ignorato
Esempio di Breakpoint ignorato
Come possiamo vedere dalla immagine il punto rosso del breakpoint diventa un cerchio rosso riempito di bianco e viene mostrata una descrizione del perchè viene ignorato. Le descrizioni riportate possono essere di vario tipo e inoltre spesso è difficile capire la causa leggendo soltanto la descrizione.

Optimized Code

Il motivo di solito è dato dal fatto che si tenta di inserire un breakpoint con il compilatore in modalità Release, quindi un primo passo è quello di impostare la modalità Debug, inoltre se il progetto è configurato per ottimizzare il codice, alcune porzioni di codice sorgente potrebbero essere ignorate come la definizione di variabili o la mera chiamata di un costruttore.
Immagine: opzione optimized code
Immagine: opzione optimized code
Disabilitando questa opzione nelle proprietà del progetto Visual Studio noteremo fin da subito che il breakpoint non sarà più ignorato e sarà possibile interrompere l'esecuzione nel punto desiderato. Nessun timore comunque, sarà possibile impostare nuovamente questa opzione una volta terminata l'attività di debug.

Nessun commento:

Posta un commento