GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara men-debug modul kernel tempat pointer NULL muncul?

Hal pertama yang pertama, debug modulnya? Lihat apakah Anda dapat memuatnya di gdb mungkin arahkan Anda langsung ke garis yang menggunakan variabel yang relevan (atau dekat dengannya).

oh, dan Anda mungkin menganggap artikel ini bermanfaat


Saya salah satu pembuat tambalan itu, maaf tambalan ini sangat bermasalah :)

Secara umum untuk menemukan pointer null seperti ini saya cukup memasukkan printks sampai menemukan pointer yang null (=0), kemudian saya membaca kode sumbernya sampai saya mengetahui alasannya.

Namun dalam kasus ini saya tahu bahwa Anda harus menonaktifkan konsol framebuffer atau Anda akan mendapatkan bug jahat ini, yang hanya terpicu saat konsol terlihat. Atau mungkin bug dipicu saat Anda mencabut keyboard, dan modul masih mencoba menulis ke buffer yang sekarang tidak valid.

Anda harus memeriksa kode baru di github, yang sedang saya coba bersihkan sekarang, untuk membuatnya lebih mudah dikompilasi terhadap kernel arbitrer, dan yang memiliki beberapa perbaikan bug.

Kunjungi juga IRC kami, #lg4l di freenode.


Linux
  1. Linux – Bagaimana Menemukan Versi Java Di Folder yang Diinstal Java?

  2. Bagaimana cara memeriksa zona waktu mana di Linux?

  3. Diberi hash komit git, bagaimana cara mengetahui rilis kernel mana yang memuatnya?

  1. Linux – Diberikan Git Commit Hash, Bagaimana Cara Mengetahui Rilis Kernel Yang Mengandungnya?

  2. Bagaimana Cara Menemukan Modul Kernel Untuk Perangkat yang Diberikan?

  3. Bagaimana menemukan versi Java mana di folder yang diinstal Java?

  1. Linux – Bagaimana Cara Menentukan Modul Yang Menodai Kernel?

  2. Linux – Bagaimana Cara Memuat Ulang Modul Kernel dengan Benar?

  3. Bagaimana Menemukan Port Serial Yang Digunakan?