Debugger: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
m ortografia
WikitanvirBot (discussione | contributi)
m r2.7.1) (Bot: Aggiungo: ko:디버거
Riga 66: Riga 66:
[[is:Kembiforrit]]
[[is:Kembiforrit]]
[[ja:デバッガ]]
[[ja:デバッガ]]
[[ko:디버거]]
[[ml:ഡീബഗ്ഗിങ്ങ്]]
[[ml:ഡീബഗ്ഗിങ്ങ്]]
[[ms:Penyahpepijat]]
[[ms:Penyahpepijat]]

Versione delle 08:18, 9 apr 2011

Il debugger è un programma/software specificatamente progettato per l'analisi e l'eliminazione dei bug (ovvero errori di programmazione interni al programma) presenti in altri programmi. Assieme al compilatore è fra i più importanti strumenti di sviluppo a disposizione di un programmatore.

Poiché la compilazione con debug inserisce nel programma grandi quantità di istruzioni in più, un programma eseguito in modalità debugger è tipicamente molto più lento di quando è eseguito direttamente sul processore per cui è stato sviluppato.

Il compito principale del debugger è quello di mostrare il frammento di codice macchina che genera il problema (tipicamente un crash). Il codice può essere mostrato nella sua forma nativa, tradotto in linguaggio assembly o perfino sotto forma di codice sorgente nel linguaggio in cui il programma analizzato è stato scritto. Per mostrare il codice assembly il debugger fa tipicamente uso di un disassembler, eventualmente integrato nel debugger stesso. Per l'analisi del codice sorgente, invece, è in generale necessario uno speciale tipo di compilazione per il programma utente.

Se si utilizza un interprete il debugging è molto più naturale per la natura stessa dell'interpretazione.

Quasi tutti i debugger consentono l'esecuzione del programma analizzato a piccoli passi, mostrando nelle interruzioni il codice relativo all'istruzione sorgente corrente e lo stato attuale della CPU. L'interruzione dell'esecuzione può avvenire ad ogni singola istruzione oppure in punti esplicitamente assegnati dall'utente (breakpoint o watchpoint).

Molti debugger contengono funzioni più sofisticate come la possibilità di modificare il valore di alcune locazioni di memoria o la possibilità di modificare il flusso del programma eseguendo delle parti di codice macchina che normalmente non vengono raggiunte.

Alcuni debugger sono delle vere e proprie macchine virtuali che simulano una particolare famiglia di CPU mentre altri sfruttano particolari funzioni della CPU hardware per poter analizzare e controllare il flusso del programma.

Elenco di debugger molto utilizzati

Voci correlate