Si tiene suerte cuando se bloquea su módulo kernel, obtendrá un ¡Vaya con un registro con mucha información, como valores en los registros, etc. Una de esas informaciones es el seguimiento de la pila (Lo mismo es cierto para los volcados del núcleo, pero originalmente había pedido esto para los módulos kernel). Tome este ejemplo:¿Cómo hacer un buen uso del seguimiento de la pila (desde el núcleo o el volcado del núcleo)?
[<f97ade02>] ? skink_free_devices+0x32/0xb0 [skin_kernel]
[<f97aba45>] ? cleanup_module+0x1e5/0x550 [skin_kernel]
[<c017d0e7>] ? __stop_machine+0x57/0x70
[<c016dec0>] ? __try_stop_module+0x0/0x30
[<c016f069>] ? sys_delete_module+0x149/0x210
[<c0102f24>] ? sysenter_do_call+0x12/0x16
Mi conjetura es que el +<number1>/<number2>
tiene algo que ver con el desplazamiento de la función en la que se ha producido el error. Es decir, al inspeccionar este número, tal vez mirando la salida del conjunto, debería ser capaz de encontrar la línea (mejor aún, la instrucción) en la que ocurrió este error. ¿Es eso correcto?
Mi pregunta es, ¿cuáles son estos dos números exactamente? ¿Cómo los usas?
¡Yo NO sabía que usted puede gdb el linux en sí! ¡Esto es asombroso! – Shahbaz
¿Dónde está 'vmlinux' though? Pensé que sería el kernel de Linux (en/boot) pero eso es 'vmlinuz ...' y addr2line dice "Formato de archivo no reconocido" No es un gran problema, ya que estoy más interesado en mis propios módulos. – Shahbaz
@Shahbaz vmlinuz es simplemente la versión comprimida y/o eliminada de 'vmlinux'. BOth generalmente estará en la carpeta '/ boot'. No tengo mi linux box conmigo para verificar ahora. Google alrededor para los dos :) Aquí hay algunos principiantes. [Uno] (http://superuser.com/questions/62575/where-is-vmlinux-on-my-ubuntu-installation) y [Two] (http://superuser.com/questions/298826/how-do -i-uncompress-vmlinuz-to-vmlinux) –