Use el rastro de la pila de impresión GDB del archivo central

Use el rastro de la pila de impresión GDB del archivo central
Si ha estado programando por un tiempo, se ha encontrado con el término volcado de memoria.

Si miras la página del hombre principal, define como volcado central como "un archivo que contiene una imagen de la memoria del proceso al momento de la terminación. Esta imagen se puede usar en un depurador (e.gramo.) GDB para inspeccionar el estado del programa en el momento en que terminó ".

En términos simples, un archivo de volcado central es un archivo que contiene información de memoria sobre un proceso cuando el proceso específico termina.

Hay varias razones por las cuales los procesos pueden bloquearse y crear un archivo de volcado central. Este tutorial le mostrará cómo usar GDB para ver el archivo de volcado central e imprimir el rastro de la pila.

Paso 1: Obtenga un volcado central

Antes de comenzar a analizar el archivo de volcado central, necesitamos generar uno. Para hacer esto, podemos usar un programa de buggy.

Considere el código Buggy.c abajo:

#incluir
#incluir
#incluir
int main ()
int num = 0;
int *ptr = malloc (sizeof (int));
int *noptr = null;
para (inti = 0; i<10; i++)
if (i == 5)
*noptr = i;

demás
*ptr = i;

printf ("i es %d \ n", i);

En el código anterior, creamos un bucle for entre 0 y 10. Si el valor de I es de 5 años, hacemos referencia a un mal puntero, causando así a Segfault y creando un volcado central.

clang -g bugg.c -o buggy

Ahora ejecute el código como:

./calesa

El código anterior dará la salida como:

yo es 0
yo es 1
yo es 2
yo es 3
yo es 4
Falla de segmentación (núcleo arrojado)

Paso 2: Abra el volcado de núcleo con GDB

Para abrir el archivo de volcado de núcleo con GDB, use el comando GDB y pase la ruta al ejecutable y el volcado de núcleo como parámetros como:

$ GDB Buggy Core

Esto iniciará GDB e incluirá el volcado de núcleo como se muestra en la salida a continuación:

Para mostrar el rastro de la pila del archivo central, use el comando Backtrace:

(GDB) Backtrace

Conclusión

Este tutorial le mostró cómo usar GDB para abrir un archivo de volcado central y obtener el rastro de la pila.