GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie debugge ich ein Kernel-Modul, in dem ein NULL-Zeiger erscheint?

Das Wichtigste zuerst, das Modul debuggen? Sehen Sie einfach, ob Sie es in gdb laden können, es vielleicht Zeigen Sie direkt auf eine Linie, die die relevante Variable verwendet (oder in der Nähe davon).

oh, und vielleicht finden Sie diesen Artikel nützlich


Ich bin einer der Autoren dieses Patches, tut mir leid, dass er so fehlerhaft ist :)

Um solche Nullzeiger zu finden, füge ich im Allgemeinen einfach printks ein, bis ich den Zeiger finde, der null (=0) ist, dann lese ich den Quellcode, bis ich herausfinde, warum.

Ich weiß jedoch, dass Sie in diesem Fall die Framebuffer-Konsole deaktivieren müssen, oder Sie erhalten diesen bösen Fehler, der nur ausgelöst wird, wenn die Konsole sichtbar ist. Oder es könnte der Fehler sein, der ausgelöst wird, wenn Sie die Tastatur abziehen, und das Modul immer noch versucht, in den jetzt ungültigen Puffer zu schreiben.

Sie sollten sich den neuen Code auf github ansehen, den ich gerade versuche zu bereinigen, um das Kompilieren gegen beliebige Kernel zu erleichtern, und der einige Fehlerkorrekturen enthält.

Besuchen Sie auch unser IRC, #lg4l auf freenode.


Linux
  1. Linux – Wie kann man bei einem Git-Commit-Hash herausfinden, welche Kernel-Version ihn enthält?

  2. Wie finde ich das Kernel-Modul für ein bestimmtes Gerät?

  3. Linux – Wie kann man feststellen, welches Modul den Kernel verschmutzt?

  4. Linux – Wie lädt man ein Kernel-Modul richtig neu?

  5. Wie finde ich heraus, welcher serielle Port verwendet wird?

So laden oder entladen Sie ein Linux-Kernel-Modul

So finden Sie heraus, welche Version des Linux-Kernels auf Ihrem PC läuft

So finden Sie heraus, welcher Dienst an einem bestimmten Port lauscht

So finden Sie heraus, zu welchen Gruppen ein Benutzer in Linux gehört

So finden Sie heraus, welche Grafikkarte Sie unter Linux haben

Wie finde ich welche Java-Version im installierten Java-Ordner?