La mejor manera

fsfsfsfsfsfsVeo gente que constantemente envía mensajes de panics como este, pero raramente veo que alguien se tome el tiempo de buscar la coincidencia entre el puntero de instrucción y una función en la tabla de símbolos del kernel.

La mejor manera de hacer el seguimiento de la causa de un panic es capturar un “crash dump”, usando gdb(1) para hacer una traza del “crash dump”. Por supuesto, esto depende de que gdb(1) funcione correctamente en -current, lo que no puedo garantizar (recuerdo que alguien ha comentado que el nuevo gdb(1) en formato ELF no manejaba bién los “dumps” de un crash del kernel; alguién debería mirar esto antes de que la 3.0 salga del estado beta).

En cualquier caso, el método que normalmente uso es este:

 

Crear un archivo de configuración de kernel, opcionalmente añadiendo ‘options DDB’ si piensas que necesitas el debugger del kernel por algún motivo. (Uso esto principalmente para configurar puntos de salida si sospecho que existe alguna condición que crea un loop infinito).
Usar config -g KERNELCONFIG para crear el directorio de configuración del kernel.
cd /sys/compile/KERNELCONFIG; make
Esperar a que el kernel termine de compilar.
cp kernel kernel.debug
strip -d kernel
mv kernel /kernel.orig/
cp kernel /
reboot

About the author