En Linux, la depuración de gdb genera archivos centrales y depura archivos centrales

1. ¿Qué es un archivo central?

Un archivo con información de pila e información de depuración generada cuando se produjo un "fallo de segmentación (volcado de núcleo)" después de ejecutar el programa en cuestión.

Al compilar, debe agregar la opción -g para que el programa genere información de depuración: gcc -g core_test.c -o core_test

2. Cómo configurar y generar archivos core

(1) cambio de archivo central

    ① Use ulimit -c para ver el cambio de núcleo, si es 0, significa apagado y no se generará ningún archivo de núcleo;

    ② Use ulimit -c [filesize] para establecer el tamaño del archivo central, y el archivo central se generará cuando la configuración mínima sea 4;

    ③ Use ulimit -c ilimitado para establecer el tamaño del archivo principal en ilimitado, lo cual es una práctica común;

    ④ Si necesita ejecutarse en el arranque, debe escribir este comando en /etc/profile y otros archivos.

    

(2) Nombre de archivo principal y ruta de guardado

    ①El archivo principal tiene un nombre y una ruta predeterminados, pero por conveniencia, generalmente lo nombramos nosotros mismos y especificamos la ruta para guardar;

② Puede configurar el nombre del archivo principal y guardar la ruta     a través de /proc/sys/kernel/core_pattern  , el método es el siguiente:

echo " /corefile/core-%e-%p-%t " > /proc/sys/kernel/core_pattern

Lista de argumentos con nombre: 

     %p - inserta el pid en el nombre del archivo Agregar pid  %u - inserta el uid actual en el nombre del archivo Agrega el uid actual  %g - inserta el gid actual en el nombre del archivo Agrega el gid actual  %s - inserta la señal que provocó el volcado del núcleo en el nombre del archivo Agrega la señal que provocó el núcleo que se generará  % t: inserte la hora de UNIX en que se produjo el volcado de núcleo en el nombre de archivo Agregue la hora de Unix en que se generó el archivo principal  %h: inserte el nombre de host donde se produjo el volcado de núcleo en el nombre de archivo Agregue el nombre de host 
    
    
    
    
    

    %e: inserte el nombre del ejecutable de volcado de núcleo en el nombre del archivo Agrega el nombre del comando .

3. Depurar el archivo central

    (1) Método 1: gdb [archivo exec] [archivo central]  y ejecute bt para ver la información de la pila:

  

   (2) Método ②: gdb -c [core file] , luego file [exec file] , y finalmente use bt para ver la ubicación del error:

     

Supongo que te gusta

Origin blog.csdn.net/wkd_007/article/details/79757289
Recomendado
Clasificación