GNU/Linux >> Linux Esercitazione >  >> Linux

Come faccio a eseguire il debug di un modulo del kernel in cui appare un puntatore NULL?

Per prima cosa, eseguire il debug del modulo? Vedi solo se riesci a caricarlo in gdb potrebbe puntare dritto su una linea che utilizza la variabile pertinente (o vicino ad essa).

oh, e potresti trovare utile questo articolo


Sono uno degli autori di quella patch, mi dispiace che sia pieno di bug :)

In generale per trovare puntatori nulli come questo inserisco semplicemente printks finché non trovo il puntatore che è nullo (=0), poi leggo il codice sorgente finché non scopro perché.

Tuttavia in questo caso so che devi disabilitare il framebuffer della console o otterrai questo brutto bug, che viene attivato solo quando la console è visibile. Oppure potrebbe essere il bug attivato quando scolleghi la tastiera e il modulo tenta ancora di scrivere nel buffer ora non valido.

Dovresti dare un'occhiata al nuovo codice su github, che sto tentando di ripulire in questo momento, per rendere più facile la compilazione rispetto a kernel arbitrari e che ha alcune correzioni di bug.

Inoltre, visita il nostro IRC, #lg4l su freenode.


Linux
  1. Linux:dato un hash Git Commit, come scoprire quale versione del kernel lo contiene?

  2. Come trovare il modulo del kernel per un determinato dispositivo?

  3. Linux:come determinare quale modulo contamina il kernel?

  4. Linux:come ricaricare correttamente un modulo del kernel?

  5. Come trovare quale porta seriale è in uso?

Come caricare o scaricare un modulo del kernel Linux

Come scoprire la versione del kernel Linux in esecuzione sul tuo PC

Come trovare quale servizio è in ascolto su una porta particolare

Come scoprire a quali gruppi appartiene un utente in Linux

Come trovare quale scheda grafica hai in Linux?

come trovare il percorso del modulo Linux