Se guardi la pagina principale del man, definisce il dump core come "un file contenente un'immagine della memoria del processo al momento della terminazione. Questa immagine può essere utilizzata in un debugger (e.G.) GDB per ispezionare lo stato del programma nel momento in cui ha terminato ".
In termini semplici, un file di dump principale è un file che contiene informazioni sulla memoria su un processo quando il processo specifico termina.
Ci sono vari motivi per cui i processi potrebbero arrestare e creare un file di dump principale. Questo tutorial ti mostrerà come utilizzare GDB per visualizzare il file di dump core e stampare la traccia dello stack.
Passaggio 1: ottieni un dump centrale
Prima di iniziare ad analizzare il file di dump principale, dobbiamo generarne uno. Per fare questo, possiamo usare un programma buggy.
Considera il codice buggy.C Di seguito:
#includereNel codice sopra, creiamo un ciclo per 0 e 10. Se il valore di I è 5, facciamo riferimento a un po 'di cattiva punta, causando così Segfault e creando un dump di base.
clang -g bugg.c -o buggyOra esegui il codice come:
./buggyIl codice sopra darà l'output come:
I è 0Passaggio 2: Apri dump core con GDB
Per aprire il file di dump core con GDB, utilizzare il comando GDB e passare il percorso all'eseguibile e al dump core come parametri come:
$ gdb buggy coreCiò lancerà GDB e includerà il dump core come mostrato nell'output di seguito:
Per mostrare la traccia dello stack del file principale, utilizzare il comando BackTrace:
(GDB) BacktraceConclusione
Questo tutorial ti ha mostrato come utilizzare GDB per aprire un file di dump principale e ottenere la traccia dello stack.