SlideShare a Scribd company logo
1 of 9
Download to read offline
Sistemi a Microprocessore                                                   Il Turbo Debugger




                      Sistemi a Microprocessore


                                 IL TURBO DEBUGGER




                                                                    1




                        Accesso al Turbo Debugger

                      Dal DOS, per accedere al Turbo
                          Debugger dalla linea di comando,
                          occorre digitare td (seguito,
                          eventualmente, dal nome del file).
                      Il Turbo Debugger richiede un file .exe,
                          ma utilizza anche il file con il codice
                          sorgente.

                                                                        2




Sergio PORCU                                                                               1
Sistemi a Microprocessore                                                    Il Turbo Debugger




                        Accesso al Turbo Debugger

                      Una volta entrati nell’ambiente integrato
                        del Turbo Debugger, occorre premere
                        in sequenza il tasto ESC ed il tasto F5.




                                                                         3




                                         View

                      Le finestre principali sono:
                      • Breakpoints – vengono visualizzati i punti
                         di interruzione inseriti e le loro
                         caratteristiche
                      • Stack – visualizza le chiamate a procedura

                      • Watches – visualizza la lista di variabili che
                         si vogliono mantenere sotto osservazione
                      • Module – visualizza il codice sorgente

                                                                         4




Sergio PORCU                                                                                2
Sistemi a Microprocessore                                                                Il Turbo Debugger




                                              View

                      •     CPU – composta da 5 riquadri: code,
                            registri, registro flag, stack, data. Il
                            riquadro selezionato automaticamente
                            è quello del codice; ci si può spostare
                            agli altri riquadri premendo il tasto TAB




                                                                                     5




                                              CPU
                      •     Riquadro code: mostra il contenuto del code
                            segment (istruzioni Assembler del
                            programma caricato). Premendo ALT+F10
                            si accede ad una finestra che presenta
                            alcune funzioni per agire sul codice. Per
                            esempio:
                              Goto...: permette di spostarsi all’istruzione di cui
                              si inserisce l’indirizzo
                              Assemble: viene presentato un riquadro nel
                              quale inserire una qualunque istruzione
                              Assembler che sarà eseguita al posto
                              dell’istruzione corrente
                                                                                     6




Sergio PORCU                                                                                            3
Sistemi a Microprocessore                                                Il Turbo Debugger




                                          CPU

                      •     Riquadro registri: mostra il contenuto
                            dei registri. Premendo ALT+F10 si
                            apre una finestra che presenta alcuni
                            comandi coi quali è possibile
                            modificare il valore del registro
                            selezionato; per esempio si può
                            incrementare, decrementare, azzerare
                            o modificare direttamente
                                                                     7




                                          CPU

                      •     Riquadro registro flag: visualizza il
                            contenuto del registro flag. Con
                            ALT+F10 si accede alla finestra che
                            permette di modificare il bit selezionato




                                                                     8




Sergio PORCU                                                                            4
Sistemi a Microprocessore                                                               Il Turbo Debugger




                                              CPU
                      •     Riquadro Data: mostra il contenuto di
                            un’area di memoria. È automaticamente
                            visualizzato il data segment (riferito da DS).
                            Premendo ALT+F10 si apre la finestra che
                            permette alcune azioni. Le principali sono:
                              Goto...: si posiziona all’indirizzo inserito. È
                              possibile specificare l’indirizzo di una variabile
                              inserendo semplicemente il nome della stessa
                              Change: modifica il valore del byte su cui è
                              posizionato il cursore

                                                                                   9




                                              CPU

                      •     Riquadro stack: analogo al
                            precedente, ma riferito a SS. Nella
                            posizione inferiore è visualizzato
                            (indicato da un triangolino nero)
                            l’elemento sulla cima dello stack.
                            Sopra di esso vi è il penultimo
                            elemento dello stack

                                                                                   10




Sergio PORCU                                                                                           5
Sistemi a Microprocessore                                                     Il Turbo Debugger




                                            RUN

                      Questo menu mette a disposizione le
                        funzioni del programma:
                      • Run – esecuzione del programma. Si
                        arresta nei breakpoint o al termine del
                        programma
                      • Go to the cursor – esegue il
                        programma fino alla posizione corrente
                        del cursore
                                                                         11




                                            RUN

                      •     Trace into (F7) – esegue una singola riga
                            sorgente (se la finestra attiva è Module), o
                            un’istruzione Assembler (se la finestra attiva
                            è CPU). Se la riga corrente contiene una
                            chiamata a funzione, si entra in essa
                      •     Step over (F8) – simile alla precedente, ma
                            non entra nelle funzioni (se un’istruzione
                            contiene una chiamata ad una funzione,
                            questa viene eseguita “in blocco”)
                                                                         12




Sergio PORCU                                                                                 6
Sistemi a Microprocessore                                              Il Turbo Debugger




                                         RUN

                      •     Back trace – ritorna indietro di
                            un’istruzione. Affinchè questa funzione
                            abbia successo è necessario attivare
                            l’opzione Full history in questo modo:
                            entrare in View/Execution history,
                            premere ALT+F10, premere il tasto F
                            per rendere attiva Execution history

                                                                  13




                                         RUN

                      •     Arguments – permette di inserire gli
                            argomenti del main
                      •     Program reset – ricarica il programma
                            e consente di ripartire dall’inizio




                                                                  14




Sergio PORCU                                                                          7
Sistemi a Microprocessore                                                    Il Turbo Debugger




                                          DATA
                      Funzioni relative alla visualizzazione e modifica
                        delle variabili (tipi elementary, array,
                        strutture, oggetti):
                      • Inspect – visualizza le caratteristiche di una
                        variabile (indirizzo in memoria, tipo, valore).
                        Premendo ALT+F10 si apre una finestra che
                        fornisce alcuni comandi per agire sul dato;
                        per esempio è possibile modificarne il valore
                      • Evaluate/modify – permette di valutare
                        un’espressione (inserita nell’apposito
                        riquadro) e di modificarne il valore
                                                                        15




                                          DATA

                      •     Add watch – aggiunge alla finestra
                            Watches una variabile. Durante
                            l’esecuzione il valore delle variabili di
                            tale finestra viene aggiornato e
                            mantenuto in osservazione




                                                                        16




Sergio PORCU                                                                                8
Sistemi a Microprocessore                                                 Il Turbo Debugger




                                   Breakpoints
                      Un breakpoint è un punto di interruzione del
                        programma. Il metodo più semplice per
                        inserire un breakpoint consiste nel
                        posizionare il cursore sulla riga in
                        corrispondenza della quale il programma si
                        deve arrestare (il programma si arresta
                        prima di avere eseguito l’istruzione della
                        riga) e usare il comando Toggle
                        (Breakpoints/Toggle). Per eliminare il
                        breakpoint seguire la stessa procedura.
                                                                     17




                                   Breakpoints
                      È possibile anche inserire delle interruzioni
                         globali; per esempio, desideriamo che
                         l’esecuzione si fermi se è verificata una
                         certa condizione su un dato (p.e.: a>10) o
                         su un’espressione (p.e.: x-y<0). Per inserire
                         questi breakpoint, richiamare
                         Breakpoints/Expression_True_Global... ed
                         inserire nel riquadro l’espressione.
                      Per eliminare tutti i breakpoints richiamare
                         Breakpoints/Delete_all
                                                                     18




Sergio PORCU                                                                             9

More Related Content

Viewers also liked

Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Sergio Porcu
 
Analisi degli scostamenti
Analisi degli scostamentiAnalisi degli scostamenti
Analisi degli scostamentiSergio Porcu
 
Costi, break even point, analisi make or buy
Costi, break even point, analisi make or buyCosti, break even point, analisi make or buy
Costi, break even point, analisi make or buySergio Porcu
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneSergio Porcu
 
Algoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeAlgoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeSergio Porcu
 
Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Sergio Porcu
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiSergio Porcu
 
Architettura dei Calcolatori 08 Assembler
Architettura dei Calcolatori 08 AssemblerArchitettura dei Calcolatori 08 Assembler
Architettura dei Calcolatori 08 AssemblerMajong DevJfu
 
Interfaccia verso il BUS
Interfaccia verso il BUSInterfaccia verso il BUS
Interfaccia verso il BUSSergio Porcu
 
L'interrupt nell'8086
L'interrupt nell'8086L'interrupt nell'8086
L'interrupt nell'8086Sergio Porcu
 
Architettura dei Calcolatori 13 Porta Parallela 8255
Architettura dei Calcolatori 13 Porta Parallela 8255Architettura dei Calcolatori 13 Porta Parallela 8255
Architettura dei Calcolatori 13 Porta Parallela 8255Majong DevJfu
 
Formato istruzioni e direttive 8086
Formato istruzioni e direttive 8086Formato istruzioni e direttive 8086
Formato istruzioni e direttive 8086Sergio Porcu
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSergio Porcu
 

Viewers also liked (17)

Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253
 
Analisi degli scostamenti
Analisi degli scostamentiAnalisi degli scostamenti
Analisi degli scostamenti
 
Costi, break even point, analisi make or buy
Costi, break even point, analisi make or buyCosti, break even point, analisi make or buy
Costi, break even point, analisi make or buy
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
 
Algoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeAlgoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, code
 
Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088
 
Investimenti
InvestimentiInvestimenti
Investimenti
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
 
Presentazione5
Presentazione5Presentazione5
Presentazione5
 
Architettura dei Calcolatori 08 Assembler
Architettura dei Calcolatori 08 AssemblerArchitettura dei Calcolatori 08 Assembler
Architettura dei Calcolatori 08 Assembler
 
Interfaccia verso il BUS
Interfaccia verso il BUSInterfaccia verso il BUS
Interfaccia verso il BUS
 
L'interrupt nell'8086
L'interrupt nell'8086L'interrupt nell'8086
L'interrupt nell'8086
 
Architettura dei Calcolatori 13 Porta Parallela 8255
Architettura dei Calcolatori 13 Porta Parallela 8255Architettura dei Calcolatori 13 Porta Parallela 8255
Architettura dei Calcolatori 13 Porta Parallela 8255
 
Assembly2
Assembly2Assembly2
Assembly2
 
Formato istruzioni e direttive 8086
Formato istruzioni e direttive 8086Formato istruzioni e direttive 8086
Formato istruzioni e direttive 8086
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ER
 
Assembler 8086
Assembler 8086Assembler 8086
Assembler 8086
 

Similar to Il Turbo Debugger

Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxDeveler S.r.l.
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxMarco Ferrigno
 
MITM Attack with Patching Binaries on the Fly by Adding Shellcodes
MITM Attack with Patching Binaries on the Fly by Adding ShellcodesMITM Attack with Patching Binaries on the Fly by Adding Shellcodes
MITM Attack with Patching Binaries on the Fly by Adding ShellcodesGianluca Gabrielli
 
Attacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowAttacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowGiacomo Antonino Fazio
 
Attacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowAttacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowGiacomo Antonino Fazio
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleMajong DevJfu
 
Thanatos - Parallel & Distributed Computing
Thanatos -  Parallel & Distributed ComputingThanatos -  Parallel & Distributed Computing
Thanatos - Parallel & Distributed ComputingIdriss Riouak
 
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1caioturtle
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding LinuxNaLUG
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesMaurizio Antonelli
 

Similar to Il Turbo Debugger (20)

Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
 
MITM Attack with Patching Binaries on the Fly by Adding Shellcodes
MITM Attack with Patching Binaries on the Fly by Adding ShellcodesMITM Attack with Patching Binaries on the Fly by Adding Shellcodes
MITM Attack with Patching Binaries on the Fly by Adding Shellcodes
 
Arduino primo v1
Arduino primo v1Arduino primo v1
Arduino primo v1
 
Attacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowAttacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflow
 
Attacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowAttacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflow
 
T3 campitalia2012 Hook XClass
T3 campitalia2012 Hook XClassT3 campitalia2012 Hook XClass
T3 campitalia2012 Hook XClass
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml Mconsole
 
Modulo 1 - Lezione 2
Modulo 1 - Lezione 2Modulo 1 - Lezione 2
Modulo 1 - Lezione 2
 
Thanatos - Parallel & Distributed Computing
Thanatos -  Parallel & Distributed ComputingThanatos -  Parallel & Distributed Computing
Thanatos - Parallel & Distributed Computing
 
Thanatos
ThanatosThanatos
Thanatos
 
Git best practices
Git best practicesGit best practices
Git best practices
 
Thanatos
ThanatosThanatos
Thanatos
 
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding Linux
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
 
Cpu
CpuCpu
Cpu
 
Cpu Abacus
Cpu AbacusCpu Abacus
Cpu Abacus
 
Cpu abacus
Cpu abacusCpu abacus
Cpu abacus
 
05 1 intro-struttura
05 1 intro-struttura05 1 intro-struttura
05 1 intro-struttura
 

More from Sergio Porcu

Elementi architetturali dell'8086
Elementi architetturali dell'8086Elementi architetturali dell'8086
Elementi architetturali dell'8086Sergio Porcu
 
Reti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaReti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaSergio Porcu
 
Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Sergio Porcu
 
Gestione date in PL/SQL
Gestione date in PL/SQLGestione date in PL/SQL
Gestione date in PL/SQLSergio Porcu
 
Traduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleTraduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleSergio Porcu
 
Diagrammi Entità/Relazioni (ER)
Diagrammi Entità/Relazioni (ER)Diagrammi Entità/Relazioni (ER)
Diagrammi Entità/Relazioni (ER)Sergio Porcu
 

More from Sergio Porcu (8)

Elementi architetturali dell'8086
Elementi architetturali dell'8086Elementi architetturali dell'8086
Elementi architetturali dell'8086
 
Metodo di Newton
Metodo di NewtonMetodo di Newton
Metodo di Newton
 
Reti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaReti di Calcolatori - Crittografia
Reti di Calcolatori - Crittografia
 
Mappe di Karnaugh
Mappe di KarnaughMappe di Karnaugh
Mappe di Karnaugh
 
Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086
 
Gestione date in PL/SQL
Gestione date in PL/SQLGestione date in PL/SQL
Gestione date in PL/SQL
 
Traduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleTraduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionale
 
Diagrammi Entità/Relazioni (ER)
Diagrammi Entità/Relazioni (ER)Diagrammi Entità/Relazioni (ER)
Diagrammi Entità/Relazioni (ER)
 

Recently uploaded

Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 

Recently uploaded (6)

Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 

Il Turbo Debugger

  • 1. Sistemi a Microprocessore Il Turbo Debugger Sistemi a Microprocessore IL TURBO DEBUGGER 1 Accesso al Turbo Debugger Dal DOS, per accedere al Turbo Debugger dalla linea di comando, occorre digitare td (seguito, eventualmente, dal nome del file). Il Turbo Debugger richiede un file .exe, ma utilizza anche il file con il codice sorgente. 2 Sergio PORCU 1
  • 2. Sistemi a Microprocessore Il Turbo Debugger Accesso al Turbo Debugger Una volta entrati nell’ambiente integrato del Turbo Debugger, occorre premere in sequenza il tasto ESC ed il tasto F5. 3 View Le finestre principali sono: • Breakpoints – vengono visualizzati i punti di interruzione inseriti e le loro caratteristiche • Stack – visualizza le chiamate a procedura • Watches – visualizza la lista di variabili che si vogliono mantenere sotto osservazione • Module – visualizza il codice sorgente 4 Sergio PORCU 2
  • 3. Sistemi a Microprocessore Il Turbo Debugger View • CPU – composta da 5 riquadri: code, registri, registro flag, stack, data. Il riquadro selezionato automaticamente è quello del codice; ci si può spostare agli altri riquadri premendo il tasto TAB 5 CPU • Riquadro code: mostra il contenuto del code segment (istruzioni Assembler del programma caricato). Premendo ALT+F10 si accede ad una finestra che presenta alcune funzioni per agire sul codice. Per esempio: Goto...: permette di spostarsi all’istruzione di cui si inserisce l’indirizzo Assemble: viene presentato un riquadro nel quale inserire una qualunque istruzione Assembler che sarà eseguita al posto dell’istruzione corrente 6 Sergio PORCU 3
  • 4. Sistemi a Microprocessore Il Turbo Debugger CPU • Riquadro registri: mostra il contenuto dei registri. Premendo ALT+F10 si apre una finestra che presenta alcuni comandi coi quali è possibile modificare il valore del registro selezionato; per esempio si può incrementare, decrementare, azzerare o modificare direttamente 7 CPU • Riquadro registro flag: visualizza il contenuto del registro flag. Con ALT+F10 si accede alla finestra che permette di modificare il bit selezionato 8 Sergio PORCU 4
  • 5. Sistemi a Microprocessore Il Turbo Debugger CPU • Riquadro Data: mostra il contenuto di un’area di memoria. È automaticamente visualizzato il data segment (riferito da DS). Premendo ALT+F10 si apre la finestra che permette alcune azioni. Le principali sono: Goto...: si posiziona all’indirizzo inserito. È possibile specificare l’indirizzo di una variabile inserendo semplicemente il nome della stessa Change: modifica il valore del byte su cui è posizionato il cursore 9 CPU • Riquadro stack: analogo al precedente, ma riferito a SS. Nella posizione inferiore è visualizzato (indicato da un triangolino nero) l’elemento sulla cima dello stack. Sopra di esso vi è il penultimo elemento dello stack 10 Sergio PORCU 5
  • 6. Sistemi a Microprocessore Il Turbo Debugger RUN Questo menu mette a disposizione le funzioni del programma: • Run – esecuzione del programma. Si arresta nei breakpoint o al termine del programma • Go to the cursor – esegue il programma fino alla posizione corrente del cursore 11 RUN • Trace into (F7) – esegue una singola riga sorgente (se la finestra attiva è Module), o un’istruzione Assembler (se la finestra attiva è CPU). Se la riga corrente contiene una chiamata a funzione, si entra in essa • Step over (F8) – simile alla precedente, ma non entra nelle funzioni (se un’istruzione contiene una chiamata ad una funzione, questa viene eseguita “in blocco”) 12 Sergio PORCU 6
  • 7. Sistemi a Microprocessore Il Turbo Debugger RUN • Back trace – ritorna indietro di un’istruzione. Affinchè questa funzione abbia successo è necessario attivare l’opzione Full history in questo modo: entrare in View/Execution history, premere ALT+F10, premere il tasto F per rendere attiva Execution history 13 RUN • Arguments – permette di inserire gli argomenti del main • Program reset – ricarica il programma e consente di ripartire dall’inizio 14 Sergio PORCU 7
  • 8. Sistemi a Microprocessore Il Turbo Debugger DATA Funzioni relative alla visualizzazione e modifica delle variabili (tipi elementary, array, strutture, oggetti): • Inspect – visualizza le caratteristiche di una variabile (indirizzo in memoria, tipo, valore). Premendo ALT+F10 si apre una finestra che fornisce alcuni comandi per agire sul dato; per esempio è possibile modificarne il valore • Evaluate/modify – permette di valutare un’espressione (inserita nell’apposito riquadro) e di modificarne il valore 15 DATA • Add watch – aggiunge alla finestra Watches una variabile. Durante l’esecuzione il valore delle variabili di tale finestra viene aggiornato e mantenuto in osservazione 16 Sergio PORCU 8
  • 9. Sistemi a Microprocessore Il Turbo Debugger Breakpoints Un breakpoint è un punto di interruzione del programma. Il metodo più semplice per inserire un breakpoint consiste nel posizionare il cursore sulla riga in corrispondenza della quale il programma si deve arrestare (il programma si arresta prima di avere eseguito l’istruzione della riga) e usare il comando Toggle (Breakpoints/Toggle). Per eliminare il breakpoint seguire la stessa procedura. 17 Breakpoints È possibile anche inserire delle interruzioni globali; per esempio, desideriamo che l’esecuzione si fermi se è verificata una certa condizione su un dato (p.e.: a>10) o su un’espressione (p.e.: x-y<0). Per inserire questi breakpoint, richiamare Breakpoints/Expression_True_Global... ed inserire nel riquadro l’espressione. Per eliminare tutti i breakpoints richiamare Breakpoints/Delete_all 18 Sergio PORCU 9