bug_report Programmazione

Debug in Delphi: breakpoint condizionali e la finestra Watch List

calendar_today personTeam EGSOFT schedule4 min di lettura

Oltre il breakpoint semplice

Quasi ogni sviluppatore Delphi conosce il breakpoint di base (F5, o click nel margine sinistro dell'editor), che ferma l'esecuzione a una riga precisa ogni volta che viene raggiunta. In un ciclo eseguito centinaia di volte, però, fermarsi ad ogni iterazione per verificare manualmente quando si verifica una condizione specifica è estremamente lento. La soluzione è il breakpoint condizionale: click destro su un breakpoint esistente, "Breakpoint Properties", permette di specificare una condizione booleana (ad esempio i = 47 oppure Cliente.Saldo < 0): l'esecuzione si ferma solo quando quella condizione è vera, ignorando tutte le altre iterazioni.

Contare le occorrenze invece di valutare una condizione

Nella stessa finestra delle proprietà del breakpoint, l'opzione "Ignore next N times" permette di specificare quante volte un breakpoint va ignorato prima di fermarsi davvero: utile quando si sa che il problema si manifesta, ad esempio, esattamente alla decima chiamata di una funzione, senza dover conoscere in anticipo una condizione booleana precisa da scrivere.

La finestra Watch List

Durante una sessione di debug, la finestra Watch List (View → Debug Windows → Watches) mostra in tempo reale il valore di variabili ed espressioni scelte, aggiornandosi automaticamente ad ogni passo di esecuzione. A differenza del semplice hover del mouse su una variabile (che mostra il valore solo al momento), la Watch List permette di tenere sotto controllo più valori contemporaneamente, incluse espressioni complesse come Lista.Count > 0 o l'accesso a un campo specifico di un record.

Valutare espressioni al volo

La finestra Evaluate/Modify (Ctrl+F7) permette non solo di visualizzare il valore di un'espressione nel punto corrente di esecuzione, ma anche di modificarlo al volo: utile per testare rapidamente come si comporta il codice successivo con un valore diverso, senza dover fermare il debug, modificare il codice sorgente e ricompilare tutto da capo.

Il log delle chiamate: Call Stack

Quando un'eccezione si verifica in profondità, dentro diverse chiamate annidate, la finestra Call Stack (View → Debug Windows → Call Stack) mostra l'intera catena di chiamate che ha portato al punto corrente, permettendo di risalire al chiamante originale con un doppio click su ciascun livello — spesso più rapido che ricostruire mentalmente il percorso del codice a ritroso.

bug_reportAltri articoli su Programmazione grid_viewTutti gli articoli
Scrivici su WhatsApp