2
如何调试出现NULL指针的内核模块?
我有一个自定义内核模块,该模块是从此补丁编译而成的,该模块logitech G19在其他G系列设备中增加了对键盘的支持。我对Ubuntu特立独行的内核的master分支(2.6.35)进行了很好的编译。 我可以引导和加载模块,但是我遇到了一个非常奇怪的情况。一旦加载模块(无论是在启动时还是通过modprobe),我都会出现黑屏,并且控制台锁定。 奇怪的是它不会锁定我的系统,而只是当前的控制台会话。我可以通过SSH进入自己的机器,它为我提供了一个终端和一个会话。我可以键入,甚至可以运行命令,它会给我输出。然后,它将绘制我的下一个提示,并立即将其锁定。 我看到dmesg其中存在一个空指针,并且得到以下堆栈跟踪: [ 956.215836] input: Logitech G19 Gaming Keyboard as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.1/input/input5 [ 956.216023] hid-g19 0003:046D:C229.0004: input,hiddev97,hidraw3: USB HID v1.11 Keypad [Logitech G19 Gaming Keyboard] on usb-0000:00:1d.7-2.1.2/input1 [ 956.216065] input: Logitech G19 as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.1/input/input6 [ 956.216128] Registered led device: g19_97:orange:m1 [ 956.216146] Registered led device: g19_97:orange:m2 [ 956.216178] …