2012-08-22 60 views
0

全部。 我是一個內核新手。我想知道如何從痛苦中獲得有用的信息,例如哪一​​行或哪個功能是錯誤的。
例如,以下是關於usb hiddevpanic-output,如何閱讀?謝謝。如何從恐慌中查找錯誤


BUG: unable to handle kernel NULL pointer dereference at 0000000000000028 
IP: [<ffffffff813b4aa1>] free_async+0xa1/0x100 
PGD 2326c9067 PUD 230f4c067 PMD 0 
Oops: 0000 [#1] SMP 
last sysfs file: /sys/devices/pci0000:00/0000:00:1d.2/usb8/8-2/speed 
CPU 3 
Modules linked in: ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat xt_CHECKSUM iptable_mangle bridge stp l] 

Pid: 2400, comm: lsusb Tainted: G   I--------------- 2.6.32-296.el664fixes.3.x86_64 #1 Dell Inc. OptiPlN 
RIP: 0010:[<ffffffff813b4aa1>] do_IRQ: 0.97 No irq handler for vector (irq -1) 
[Firmware Bug]: the BIOS has corrupted hw-PMU resources (MSR 186 is 53003c) 
�Mounting proc filesystem 
Mounting sysfs filesystem 
Creating /dev 
Creating initial device nodes 
setfont: KDFONTOP: Invalid argument 
Free memory/Total memory (free %): 78672/114884 (68.4795) 
Loading dm-mod.ko module 
Loading dm-log.ko module 
Loading dm-region-hash.ko module 
Loading dm-mirror.ko module 
Loading dm-zero.ko module 
Loading dm-snapshot.ko module 
Loading freq_table.ko module 
Loading mperf.ko module 
Loading ipt_REJECT.ko module 
Loading nf_defrag_ipv4.ko module 
Loading ip_tables.ko module 
Loading nf_conntrack.ko module 
Loading ip6_tables.ko module 
Loading ipv6.ko module 
Loading fat.ko module 
Loading macvlan.ko module 
Loading tun.ko module 
Loading kvm.ko module 
Loading uinput.ko module 
Loading parport.ko module 
Loading dcdbas.ko module 
Loading microcode.ko module 

回答

0

恐慌本身實際上是相當準確;

BUG:無法在0000000000000028 IP處理內核空指針引用:[] free_async + 0xa1/0x100的

告知已經是哪裏出了問題發生的功能是free_async和功能是完全相同的0x100字節長,碰撞發生在偏移量0xa1處。您需要將該偏移量映射到確切的代碼行,但現在取決於您的環境如何執行此操作。

有時手動代碼審查已經會顯示哪一行有指針操作,所以你可以通過查看該函數來完成。

那麼接下來的問題是,爲什麼你有一個NULL指針呢?