Debugger

Debugger

Descrizione dell'immagine Winpdb-1.3.6.png. Informazione
genere Tipo di software ( in )

Un debugger (inglese debugger ) o debugger (il bug francesizzazione) è un software che aiuta uno sviluppatore per analizzare i bug di un programma di . Per fare questo, ti permette di eseguire il programma passo dopo passo - vale a dire il più delle volte riga per riga -, di visualizzare il valore delle variabili in qualsiasi momento e di impostare i punti. Linee.

Questa è l'applicazione per la programmazione del computer del processo di risoluzione dei problemi .

uso

Il programma da sottoporre a debug viene eseguito tramite il debugger e viene eseguito normalmente. Il debugger offre quindi al programmatore la possibilità di osservare e controllare l'esecuzione del programma, consentendogli in vari modi di osservarlo, di fermarlo (mettere in pausa l'esecuzione del programma) e di modificarlo. Ad esempio, è possibile osservare lo stack di esecuzione e il contenuto delle variabili in memoria e il valore delle variabili può essere modificato per alterare il flusso del controllo del programma al fine, ad esempio, di determinare la causa di un errore.

Quando l'esecuzione del programma viene interrotta, il debugger visualizza la posizione di esecuzione corrente nel codice sorgente originale per il debug formale  (in ingresso ) e il debug a livello di sorgente. Il debugger di basso livello o macchina mostra la riga disassemblata .

Molti debugger consentono, oltre ad osservare lo stato dei registri del processore e della memoria, di modificarli prima di restituire il controllo al programma debug. Possono quindi essere utilizzati per individuare determinate protezioni software e disabilitarle, portando alla progettazione di una crepa . Pertanto, alcuni software, sapendo come funzionano i debugger e volendo impedire tali modifiche, implementano trucchi anti-debugging .

Tecniche

Gli strumenti offerti dai debugger dipendono essenzialmente dal linguaggio di programmazione (utilizzato per sviluppare il programma da sottoporre a debug) per cui è stato progettato. Tuttavia, la stragrande maggioranza dei debugger offre strumenti simili.

Strumenti per controllare l'esecuzione del programma

Strumenti per osservare lo stato del programma

Inoltre, il debugger consente generalmente di modificare lo stato del programma, quando la sua esecuzione viene interrotta:

Debug remoto, debug incrociato

Il cross debug o il cross debugging serve per eseguire il debug di un software remoto e spesso per una diversa stazione di sviluppo dell'architettura di destinazione.

Debugger del kernel

Il debug di un kernel o di un driver del sistema operativo richiede strumenti adatti a questo compito particolarmente delicato. In particolare, questo debug viene solitamente eseguito in remoto tramite collegamento seriale (ma a volte tramite Ethernet) poiché il debugger assume il pieno controllo del kernel, la macchina di destinazione diventa quindi inutilizzabile (si blocca completamente ad ogni breakpoint).

Vedi ad esempio il debugger kgdb integrato nel kernel Linux .

Debugger noti

Bibliografia

Note e riferimenti

  1. (it) "  Ladebug Debugger Manual: Compaq Tru64 UNIX versione 5.1A o successiva  " su tru64unix.compaq.com ,Giugno 2001(visitato il 7 dicembre 2012 )
  2. (in) "  Il / i debugger / i Perl  " su perl.org ,7 dicembre 2012(visitato il 7 dicembre 2012 )
  3. (in) "  HP WDB  " su www2.hp.com ,7 dicembre 2012(visitato il 7 dicembre 2012 )