Debugger: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m img |
fix |
||
(22 versioni intermedie di 17 utenti non mostrate) | |||
Riga 1:
{{F|programmazione|data=agosto 2017|commento=assenza totale di fonti}}
[[
Assieme al [[compilatore]] è fra i più importanti strumenti di sviluppo a disposizione di un [[programmatore]], spesso compreso all'interno di un [[ambiente integrato di sviluppo]] (IDE), in quanto in grado di aiutare il [[programmatore]] ad individuare [[errore di semantica|errori di semantica]] all'interno del [[codice sorgente]] del programma, altrimenti di difficile individuazione in fase di [[runtime]].
==Descrizione==▼
Il codice può essere mostrato nella sua forma nativa, tradotto in linguaggio [[assembly]] o perfino sotto forma di [[codice sorgente]] nel [[linguaggio di programmazione]] 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.▼
La maggior parte dei debugger include un [[disassembler]], come il programma [[objdump]] delle [[GNU Binutils]].
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.▼
▲== Descrizione ==
▲Il compito principale del debugger è quello di mostrare il frammento di [[codice macchina]] che genera il problema (tipicamente un [[crash (informatica)|crash]]). Il codice può essere mostrato nella sua forma nativa, tradotto in linguaggio [[assembly]] o perfino sotto forma di [[codice sorgente]] nel [[linguaggio di programmazione]] in cui il programma analizzato è stato scritto. Per mostrare il codice assembly, il debugger fa tipicamente uso di un [[disassembler]], eventualmente integrato
▲Poiché la compilazione con debug inserisce nel programma grandi quantità di istruzioni in più, un programma eseguito in modalità
Se si utilizza un [[Interprete (informatica)|interprete]] il debugging è molto più naturale per la natura stessa dell'interpretazione.
Line 16 ⟶ 19:
Molti debugger contengono funzioni più sofisticate come la possibilità di modificare il valore di alcune locazioni di [[Memoria (informatica)|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 [[Macchina virtuale|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 più utilizzati ===
{{
* [[Absolute Debugger]] (adb)
* [[Allinea Distributed Debugging Tool (DDT)]] (DDT)
Line 27 ⟶ 30:
* [[DAEDALUS]]
* [[dbx debugger|dbx]]
* [[dgb PHP Debugger and Profiler]]
* [[dgb Library]
* [[Dynamic debugging technique]] (DDT), e la sua controparte ottale ODT
*
* dprobes
*
* [[Etnus TotalView]]
* [[GNU Debugger]] (GDB)
Line 48 ⟶ 51:
* [[T-Bug]], il debugger integrato in [[Perl|Perl 5]]
* [[Windbg]]
* [[Tp-cobol-debugger]]
{{
== Note ==
<references />
== Voci correlate ==
* [[Bug]]
* [[Debugging]]
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC||debugger}}
{{Collaudo del software}}
{{Portale|informatica}}
[[Categoria:Debugging]]
|