El programa C en Linux a menudo causa un fallo de segmento debido a errores de acceso a la memoria, etc., si la función de volcado de memoria del sistema es Abierto, luego se descargará una imagen de memoria en el disco duro, luego puede usar gdb para analizar el archivo del núcleo y restaurar la situación de la pila cuando el sistema tiene un error de segmentación. Esto es muy útil para nosotros para encontrar errores.
Utilice ulimit -a para ver el límite de tamaño del archivo del núcleo del sistema; use ulimit -c [kbytes] para establecer el tamaño del archivo del núcleo que el sistema puede generar, por ejemplo,
ulimit -c 0 no genera el archivo del núcleo
ulimit - c 100 Establezca el archivo del núcleo en un máximo de 100k
ulimit -c ilimitado No limite el tamaño del archivo del núcleo
Busque un programa que cause un error de segmentación:
#include
int main ()
{< Br> char * ptr = " linuxers.cn ";
* ptr = 0;
}
El resultado de compilar y ejecutar es el siguiente:
[leconte @ localhost test] $ gcc -g -o test Ac
[leconte @ localhost test] $ ./test
Segment Error
No hay un archivo central generado en este momento, luego use ulimit -c para establecer el tamaño del archivo principal en ilimitado, luego ejecute el programa ./test. El resultado es el siguiente:
[leconte @ localhost ~] $ ulimit -a
tamaño del archivo principal (bloques, -c) 0
[leconte @ localhost test] $ ulimit -c ilimitado
[leconte @ Prueba de host local] $ ulimit -a
tamaño del archivo del núcleo (bloques, -c) ilimitado
[prueba de leconte @ localhost] $ ./test
volcado de segmento (volcado del núcleo)
[leconte @ loc Alhost test] $ ls -al core. *
-rw ------- 1 leconte leconte 139264 01-06 22:31 core.2065
Se ha generado un archivo del núcleo visible, luego se analiza el gdb , vea la situación de la pila:
[leconte @ localhost test] $ gdb ./test core.2065
GNU gdb Fedora (6.8-27.el5)
Copyright (C) 2008 Free Software Foundation, Inc. < Br> Licencia GPLv3 +: GNU GPL versión 3 o posterior
Este es un software gratuito: usted es libre de cambiarlo y redistribuirlo.
NO HAY GARANTÍA, en la medida permitida por la ley. Escriba " mostrar copia " Br> y " muestran la garantía " para obtener más detalles.
Este GDB se configuró como " i386-redhat-linux-gnu " ... | advertencia: el archivo exec es más nuevo que el archivo principal.
advertencia: No se puede leer la ruta de acceso para el mapa de carga: Error de entrada /salida.
Lectura de símbolos desde /lib/libc.so.6...done.
Símbolos cargados para /lib/libc.so.6
Lectura de símbolos desde /lib/ld-linux.so.2...done.
Símbolos cargados para /lib/ld-linux.so.2
El núcleo fue generado por `./test '.
Plazo del programa Inated con la señal 11, falla de segmentación.
[Nuevo proceso 2065]
# 0 0x0804836f en main () en ac: 6
6 * ptr = 0;
Está claro desde la salida anterior El error de segmentación ocurrió en la línea 6 de CA y el problema ha sido claramente localizado.
Muchos de los tamaños de archivo del núcleo por defecto del sistema son 0, podemos especificar el tamaño del archivo del núcleo agregando el comando ulimit -c en el script de inicio de shell /etc /bashrc o ~ /.bashrc, etc., para garantizar que el archivo del núcleo pueda Generado
Además, también puede configurar la plantilla de nombre de archivo del archivo principal en /proc /sys /kernel /core_pattern. Para obtener más información, consulte la página de manual oficial del núcleo.
Al igual que Hong Kong todavía participa en la lucha contra la cuestión de los libros de texto elect
Windows CE es un sistema operativo integrado desarrollado por Microsoft que se puede utilizar en una
Redis es una base de datos de código-valor, de código abierto, basada en registros, que está escri
No hay un nuevo concepto en este artículo. Simplemente usamos herramientas de línea de comandos para
Modifique la dirección MAC de Linux en la máquina virtual VMware
Sistema de Linux centos cierre y reinicio del comando detallado
¿Qué tan estable proceso de Linux corriendo en el fondo
Zumbador activo y diferencia de zumbador pasivo
Instalación de sistema Linux extensión php cURL
Configure la variable de entorno del sistema operativo Linux
proceso de roscado artículo clásico Linux
Modelo subyacente del dispositivo Linux
Pronunciación correcta de Linux
u disco de instalación experiencia de Linux
Explique el escondite del programa de inicio automático en Windows [图文]
Win10 Professional Edition N ¿Qué? Win10 Professional Edition N Uso
Meteor Butterfly Sword en segundo lugar cómo jugar Meteor Butterfly Sword en segundo lugar Raiders
Después de reinstalar el sistema win7, la interfaz usb no es válida.
Block XP "Configurar acceso y programas predeterminados"
¿Cómo usar Vista para ajustar de forma no destructiva las particiones del disco duro?
Los avisos de Win8 necesitan los permisos adecuados para usar la cámara?
Elimine el menú de inicio, Metro es muy diferente.
Escuela de principiantes: herramienta de descarga de Linux, introducción de wget y axel