9.3. Analisis Post-mortem de un Dump

Que sucede si un kernel hace un dump de su memoria que usted no esperaba, y por lo tanto no estaba compilado usando config -g? No todo esta perdido aquí. Do not panic!

Nota: N.del T.: El autor hace un juego con la palabra panic! que prefiero dejar sin traducir.

Por supuesto, aun necesita habilitar los crash dumps. Vea más arriba las opciones que debe especificar para esto.

Vaya a su directorio de configuración del kernel (/usr/src/sys/arq/conf) y edite su archivo de configuración. Quite las marcas de comentario (o agregue, si no existe) la siguiente línea

makeoptions    DEBUG=-g                #Build kernel with gdb(1) debug symbols

Recompile el kernel. Algunos otros archivos seran recompilados, por ejemplo trap.o, a causa del cambio de la fecha del archivo Makefile. Con un poco de suerte, la opción -g no cambiará nada del código generado, al final usted tendra un kernel con el mismo código que tiene problemas ahora pero con ciertos símbolos para depuración. Por lo menos usted debería verificar el tamaño anterior y el nuevo con el comando size(1). Si hay diferencia probablemente sea el momento de darse por vencido.

Ahora puede examinar el dump como se describió anteriormente. Los símbolos pueden estar incompletos para algunas partes, como se puede ver en el listado de pila del ejemplo anterior donde algunas funciones se muestran sin numeros de línea ni listas de argumentos. Si necesita más símbolos borre los archivos objeto apropiados y repita la sesión de kgdb hasta que haya averiguado lo suficiente.

No se garantiza que todo esto funcione, pero irá bastante bien la en mayoría de los casos.

Éste y otros documentos pueden obtenerse en ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para preguntas acerca de FreeBSD, leer la documentación antes de contactar con la lista <questions@FreeBSD.org>.
Para preguntas acerca de esta documentación, e-mail a <doc@FreeBSD.org>.