Estoy usando Ubuntu 14.04.
Después de instalar algunas aplicaciones, me enfrenté a un error de segmentación (error de núcleo).
Qué significa eso ? Cómo puedo resolver este problema ?
Por ejemplo :
Después de instalar chrome-stable, cuando lo ejecuto desde la terminal, experimento este error.
sudo rm -rf ~/.config/google-chrome ~/.cache/google-chrome
. Luego ejecútelo en modo incógnitogoogle-chrome --incognito
Respuestas:
Qué significa eso?
Ver AU: ¿Qué es una falla de segmentación? y también esto que tiene algunos ejemplos de cómo reproducirlo, SO: ¿Qué es la falla de segmentación? . La descripción más simple con la que puedo venir (puede que no sea la perfecta):
Algunos casos: valor de lectura con puntero inicializado, fuera de rango en una matriz, llamada de función (cuando no se mantiene la compatibilidad con versiones anteriores), ...
Sin embargo, no siempre es fácil encontrar la causa con programas grandes o aquellos que se transmiten en otras bibliotecas de proyectos. Y la mayoría de los casos terminan con un informe de error, ya sea para el programa de destino o uno si sus dependencias (ya sea proyecto ascendente o paquete de distribución descendente).
¿Cómo puedo resolver este problema?
Si no realizó ninguna configuración / configuración personalizada y todas las actualizaciones se instalaron. Active un informe de error , consulte ¿Cómo denuncio un error?
Si el código abierto es compatible con Ubuntu use
ubuntu-bug
(apport-bug
). Para fuentes cerradas de terceros, consulte sus páginas de ayuda sobre cómo informar errores y recopilar datos relacionados.Nota: Si tiene un poco de experiencia en programación, se recomienda que haga todo lo posible para resolverlo usted mismo. Hay muchos informes de errores por ahí inactivos durante años. O al menos recopile suficientes datos de depuración para resolver el problema antes de informarlo.
Algunas herramientas útiles para la depuración
apport-bug
registros / volcado de núcleo / traza inversaSi no tiene un mensaje de error antes de la falla de segmentación. Ejecútelo con la
--save
opción y busque el registro de rastreo posterior:gdb
código fuente de rastreo / depuraciónSi no funcionó, use
gdb
:Si recibe algún mensaje de error, consulte la web, la plataforma de lanzamiento y el rastreador de errores del proyecto ascendente si hay casos similares.
Para algunos usuarios avanzados o que siguen la ruta de aprendizaje de ac / c ++, pueden descargar los
-dbg
paquetes de símbolos correspondientes . Luego puede usargdb
para rastrear el flujo del programa a través de la fuente y obtener la función / instrucción exacta que genera el error de tiempo de ejecución.strace
sistema de seguimiento de llamadasOtra herramienta que puede ayudar es
strace
, me gusta. Es realmente una herramienta poderosa.Se presenta a sí mismo:
Fuente:
man strace
ltrace
rastreo dinámico de llamadas de bibliotecaFuente:
man ltrace
fuente