Elenco dei comandi GDB e cosa fanno

Elenco dei comandi GDB e cosa fanno
Quando lavori con C ++, C o Fortran, ti imbatterai nel GDB, un acronimo per il GNU Debugger, Utilizzato per i programmi di debug scritti in C, C ++ e in altre lingue. Il debugger può essere invocato sul terminale e viene preinstallato sul terminale Linux. Per sentirti a proprio agio nell'uso del debugger GNU sul terminale, è essenziale comprendere i vari comandi disponibili e cosa fanno. Questa guida copre i comandi più importanti mentre dà esempi su come usarli. Dai un'occhiata!

Comandi GDB comuni

Esistono vari modi per invocare il debugger GNU. Puoi digitare direttamente GDB sul terminale per aprire la sua console.

In alternativa, puoi chiamare il debugger con un file eseguibile. Se si dispone di un file eseguibile, come un programma C o C ++, che desideri eseguire il debug, puoi compilarlo usando il -G opzione. Per il nostro esempio, useremo a campione1.CPP file.

Per compilarlo usando il compilatore G ++, il comando sarà:

$ g ++ -g -o campione1 campione1.CPP

Qui, stiamo aggiungendo l'opzione -o per scrivere il programma compilato al file denominato campione1.

Una volta compilato, è possibile invocare il debugger GNU mentre si collega il file di output compilato per debug. Il comando sarà:

$ GDB Sample1

Una console si apre e puoi utilizzare i comandi GDB disponibili per eseguire diverse attività. I comandi comuni includono:

1. esentato: per uscire dalla console GDB, digitare o Q.

2. Run [args]: in base alle funzioni del programma, è possibile invocare la funzione da eseguire utilizzando questo comando e aggiungere gli argomenti necessari. Per il nostro caso, abbiamo il get -qhere funzione, che prende un argomento del numero. Pertanto, se abbiamo bisogno di ottenere il quadrato di un numero, digitiamo correre seguito dal numero. Ad esempio, prendiamo il quadrato di 6. L'output sarà come mostrato di seguito:

In fondo, è possibile notare che il programma ha restituito l'output del quadrato. Puoi eseguire più opzioni con argomenti diversi.

3. aiuto: Apre la pagina manuale per il debugger GNU con tutte le classi di comandi disponibili per l'uso.

Puoi restringere la pagina di aiuto specificando quale classe di comandi desideri ottenere la loro pagina manuale. Per questo, la sintassi viene utilizzata di seguito:

$ help [classe-nome]

Ad esempio, per ottenere la pagina manuale per la classe corsa, Il seguente output sarà:

4. rottura: quando è necessario eseguire il debug del programma, è possibile aggiungere vari punti di interruzione utilizzando il comando Break. Inoltre, ci sono diversi modi per aggiungere un punto di interruzione.

I modi comuni includono:

B [Nome funzione]
Break [Numero di riga]
Break [Nome funzione]
Break *[indirizzo]

Ad esempio, se conosci un nome di funzione specifico nel programma e si desidera creare un punto di interruzione per il debug, è possibile utilizzare la sintassi precedente. Creiamo un punto di interruzione per una funzione denominata get -qhere Nel seguente programma:

Nell'output precedente, abbiamo creato il punto di interruzione e le informazioni visualizzate nella console.

Se si tenta di eseguire il programma, si fermerà al punto di interruzione. Ad esempio, otteniamo il quadrato di 12 usando Esegui 12.

Il debugger si ferma nel punto di interruzione in cui è il nome della funzione specificato. A questo punto, puoi eseguire il debug del tuo programma e procedere una volta che hai tutto funzionante bene.

5. Continua o c: Quando il debug è completato e si desidera riprendere a eseguire il comando senza il punto di interruzione impostato, eseguire il comando Continua. Eseguirà il comando fino al prossimo punto di interruzione o alla fine del programma. Se si desidera aggiungere il numero di volte per ripetere il comando Continua, aggiungi il conteggio.

I due sintassi sono:

Continua o c
C [Ripeti conteggio]

Per il nostro caso, continuiamo senza alcun conteggio ripetuto.

Dà l'output del comando interrotto. Se avessimo argomenti diversi, fornirebbe ogni risultato dopo un breakpoint. Ad esempio, invochiamo Esegui 4 6 8, Quindi usa il Continua comando per vedere cosa succede.

Noterai dopo ogni argomento che il programma soddisfa un punto di interruzione. Quando eseguiamo il comando Continua, riprende la sua esecuzione.

6. Prossimo: quando il programma incontra un punto di interruzione, puoi digitare Prossimo O N Per stampare la riga successiva in esecuzione.

7. eliminare: Se hai diversi punti di interruzione e punti di controllo, puoi eliminarli utilizzando il comando seguente. Se corri D O eliminare Senza argomenti, elimina tutti i punti di interruzione e punti di controllo. Tuttavia, è possibile specificare quale eliminare selezionando il suo numero.

8. chiaro: Per eliminare un punto di interruzione associato a un determinato nome della funzione, utilizzare il comando Clear successivo seguito dal nome della funzione:

A questo punto, non abbiamo più alcun punto di interruzione nel nostro programma.

Se l'eliminazione di un punto di interruzione non è un'opzione, che ne dici di disabilitare e abilitarli ogni volta che lo desideri?

9. disattivare E abilitare: per disabilitare un punto di interruzione, specificare il suo numero.

Più tardi, utilizzare il comando abilita seguito dal suo numero per attivarlo indietro.

10. informazioni: puoi ottenere i dettagli dei punti di controllo disponibili e dei punti di interruzione. Utilizzare il seguente comando per ottenere i dettagli di tutti i punti di interruzione o checkpoint:

INFO BREAKPOINTS
I checkpoint delle informazioni

Per specificare un punto di interruzione o un checkpoint, utilizzare la seguente sintassi:

Info Breakpoints [Breakpoint-Number]
Information Checkpoint [Breakpoint-Number]

11. Imposta args: per impostare un elenco di argomenti da utilizzare durante l'esecuzione del correre comando, usa set args seguito dagli argomenti. Ad esempio:

Imposta Args 2 4

Se invochiamo il comando di corsa, otterrà il quadrato dei due argomenti.

È possibile visualizzare l'elenco disponibile degli argomenti utilizzando il mostra args comando.

Conclusione

Abbiamo trattato l'elenco GDB più comune di comandi in Linux. Con un po 'di pratica, diventerà più facile utilizzare i comandi per ottenere funzionalità diverse. Speriamo che questo articolo abbia fornito un sopravvento nell'uso dei comandi del debugger GNU.