|
|
一个内核Driver模块
调用到do_generic_read_file()函数的时候会出现下边的错误信息(dmesg得到),此函数的形参函数是我自己写的
具体操作是mount
我知道这个错误应该是空指针得到的,不过不知道具体该怎么查
请帮忙分析一下,谢谢
- Unable to handle kernel NULL pointer dereference at virtual address 00000000
- printing eip:
- 00000000
- *pde = 0231f067
- Oops: 0000 [#1]
- Modules linked in: msdos fat vf(U) VD(U) vmhgfs(U) md5 ipv6 dm_mod button battery ac snd_ens1371 snd_rawmidi snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd_ac97_codec snd soundcore pcnet32 mii ext3 jbd mptscsih mptbase sd_mod scsi_mod
- CPU: 0
- EIP: 0060:[<00000000>] Tainted: PF VLI
- EFLAGS: 00010246 (2.6.9-5.EL)
- EIP is at 0x0
- eax: c004db80 ebx: c1052580 ecx: c0404f00 edx: c1052580
- esi: 00000010 edi: c0fd9eac ebp: 00000000 esp: c1b87c2c
- ds: 007b es: 007b ss: 0068
- Process mount (pid: 2575, threadinfo=c1b87000 task=c22db220)
- Stack: c01488f7 c1b87c9c c004db80 00000000 00000000 c0145cc9 c102a460 00000206
- 000001d2 c034f7f4 00000000 000001d2 c034fabc c0145da0 00000001 00000000
- c22db220 00000010 00000000 c0fd9eac 0000000f 00000010 00000010 c0148e1f
- Call Trace:
- [<c01488f7>] read_pages+0x8d/0xd0
- [<c0145cc9>] buffered_rmqueue+0x1c4/0x1e7
- [<c0145da0>] __alloc_pages+0xb4/0x298
- [<c0148e1f>] do_page_cache_readahead+0x243/0x262
- [<c0148f6f>] page_cache_readahead+0x131/0x19e
- [<c0142407>] do_generic_mapping_read+0xd9/0x37c
- [<c024190d>] __generic_unplug_device+0x2b/0x2d
- [<c024198a>] generic_unplug_device+0x7b/0xe0
- [<c02419fe>] blk_backing_dev_unplug+0xf/0x10
- [<c0163745>] sync_buffer+0x26/0x27
- [<c0163841>] __wait_on_buffer+0x67/0x83
- [<c01636f6>] bh_wake_function+0x0/0x29
- [<c0166f0e>] submit_bh+0x156/0x162
- [<c01636f6>] bh_wake_function+0x0/0x29
- [<c01653ba>] __bread_slow+0x78/0x8d
- [<c016559b>] __bread+0x19/0x1e
- [<c399d34f>] fat_fill_super+0x105/0x71f [fat]
- [<c01085ee>] do_IRQ+0x239/0x242
- [<c0301d40>] common_interrupt+0x18/0x20
- [<c390249e>] msdos_fill_super+0xf/0x23 [msdos]
- [<c016a1f4>] get_sb_bdev+0xe0/0x11c
- [<c03003b2>] __cond_resched+0x14/0x3b
- [<c39024c0>] msdos_get_sb+0xe/0x12 [msdos]
- [<c390248f>] msdos_fill_super+0x0/0x23 [msdos]
- [<c016a3bd>] do_kern_mount+0x8a/0x13a
- [<c018405c>] do_new_mount+0x61/0x90
- [<c0184ada>] do_mount+0x178/0x190
- [<c0145da0>] __alloc_pages+0xb4/0x298
- [<c0184f8f>] sys_mount+0x10d/0x1df
- [<c0301bfb>] syscall_call+0x7/0xb
- Code: Bad EIP value.
复制代码 |
|