GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo depuro un módulo del kernel en el que aparece un puntero NULL?

Lo primero es lo primero, ¿depurar el módulo? Solo mira si puedes cargarlo en gdb, podría señalarlo directamente a una línea que usa la variable relevante (o cerca de ella).

oh, y este artículo puede resultarle útil


Soy uno de los autores de ese parche, lo siento, tiene tantos errores :)

En general, para encontrar punteros nulos como este, simplemente inserto printks hasta que encuentro el puntero que es nulo (=0), luego leo el código fuente hasta que descubro por qué.

Sin embargo, en este caso, sé que debe deshabilitar la consola de framebuffer o obtendrá este error desagradable, que solo se activa cuando la consola está visible. O podría ser el error activado cuando desconecta el teclado y el módulo aún intenta escribir en el búfer ahora no válido.

Debería revisar el nuevo código en github, que estoy tratando de limpiar en este momento, para que sea más fácil de compilar contra kernels arbitrarios, y que tiene bastantes correcciones de errores.

Además, visite nuestro IRC, #lg4l en freenode.


Linux
  1. Linux:¿cómo encontrar qué versión de Java en la carpeta instalada de Java?

  2. ¿Cómo uso ioctl() para manipular mi módulo kernel?

  3. Shell - ¿Cómo encontrar el directorio de algún comando?

  4. ¿Cómo codificar un módulo del kernel de Linux?

  5. cómo encontrar la ruta del módulo Linux

Cómo cargar o descargar un módulo del kernel de Linux

Cómo averiguar la versión del kernel de Linux que se ejecuta en su PC

Cómo encontrar qué servicio está escuchando en un puerto en particular

Cómo saber a qué grupos pertenece un usuario en Linux

¿Cómo encontrar qué tarjeta gráfica tienes en Linux?

¿Cómo encontrar qué versión de Java en la carpeta instalada de Java?