This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
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.
Anterior | Inicio | Siguiente |
Depurando un crash dump con DDD | Subir | Depuración En-línea del Kernel Usando DDB |
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.