Instruction step: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ValterVBot (discussione | contributi)
m Bot: Elimino tutti gli interlinks vedi Wikidata: D:Q935397
m apostrofo tipografico
 
(4 versioni intermedie di 4 utenti non mostrate)
Riga 1:
{{F|informaticaprogrammazione|marzo 2012}}
'''Instruction step''' è l’esecuzionel'esecuzione di una singola istruzione di un programma per computer. La modalità di esecuzione ''step-by-step'' (passo-passo) serve per determinare come sta funzionando un programma. E’È utilizzata sia per verificare la correttezza del flusso di programma durante l’esecuzionel'esecuzione del software, che la corretta valorizzazione delle variabili dopo l’esecuzionel'esecuzione di una singola istruzione (''single step'').
 
Nel caso di un programma in [[linguaggio di alto livello]], un singolo ''statement'' può corrispondere a diverse istruzioni in [[linguaggio macchina]], mentre nel linguaggio [[Assembly]] ciascuna istruzione corrisponde ad un passo di programma.
 
Ci sono diverse tecniche per interrompere l’esecuzionel'esecuzione del programma. Nei primi computer si ricorreva ad un segnale hardware di [[interrupt]], attivato dopo un numero di cicli macchina corrispondenti all’istruzioneall'istruzione da eseguire. Un hardware complesso consentiva di emulare il processore, interrompendo l’esecuzionel'esecuzione dopo ogni istruzione e visualizzare il contenuto di registri e variabili ('''tracing''').
 
Successivamente sono state introdotte dai costruttori di microprocessori istruzioni di interruzione software, che possono essere temporaneamente sostituite all’istruzioneall'istruzione successiva a quella da eseguire, per ottenere l’interruzionel'interruzione del programma. Tuttavia la tecnica di interruzione hardware rimane ancora necessaria in caso il programma non possa essere sovrascritto (perché residente in [[Programmable Read Only Memory|PROM]], piuttosto che in [[RAM]]).
In ogni caso, sia con l’interruzionel'interruzione hardware che software, il controllo passa and un altro programma, detto [[debugger]], che visualizza il contenuto di registri e variabili e attende un comando dal programmatore.
 
Generalmente i comandi supportati dal ''debugger'' sono:
* L’avvioL'avvio da un punto qualsiasi del programma
* L'esecuzione di una istruzione (''single step''), o più istruzioni
* L’inserimentoL'inserimento di [[breakpoint]]s, eventualmente condizionati a specifici eventi
* L’ispezioneL'ispezione e modifica di variabili, dati e registri
* L’ispezioneL'ispezione di parti del programma
 
Nelle famiglie più recenti di processori sono state incorporate delle apposite interfacce di debug (ad esempio [[JTAG]] e ONCE), con opportuni microprogrammi che semplificano notevolmente le procedure di [[debugging]]. Tali interfacce possono essere gestite tramite applicazioni visuali su PC, collegato per mezzo di una porta seriale, al ''target''. Queste applicazioni consentono di effettuare il ''debugging'' sul [[codice sorgente]] in [[linguaggio ad alto livello]], svincolando il programmatore dal trattamento del [[codice macchina]], dal calcolo degli indirizzi, dalla notazione [[esadecimale]] ed altre difficoltà del ''debugging'' di basso livello.
 
== Voci correlate ==
* [[Instruction cycle]]
Line 28 ⟶ 29:
{{Portale|informatica}}
 
[[Categoria:Attività di sviluppoSviluppo software]]
[[Categoria:Ambienti di sviluppo]]