免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4079 | 回复: 2
打印 上一主题 下一主题

[内存管理] 内核访问内存非法是否会触发do_page_fault [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-19 19:12 |只看该作者 |倒序浏览
看看下面这个内核异常,先是进程异常,然后内核异常,内核挂起

是不是用户态进程访问内存异常,触发do_page_fault到内核,内核又访问内存异常,再次触发do_page_fault

omiga[1419]: segfault at 0 ip (null) sp b758cb2c error 4 in ld-2.5.so[6ec000+1a000]
BUG: unable to handle kernel NULL pointer dereference at 00000024
IP: [<c0122c63>] do_exit+0x19c/0x503
*pde = 00000000
Thread overran stack, or stack corrupted
Oops: 0000 [#1]
last sysfs file:
Modules linked in: nfe_l7_filter ace_kernel

Pid: 1419, comm: config Not tainted 2.6.36.1+ #6 i855-W83627HF/
EIP: 0060:[<c0122c63>] EFLAGS: 00210246 CPU: 0
EIP is at do_exit+0x19c/0x503
EAX: 00000000 EBX: de9ee240 ECX: b7592bd8 EDX: de9ee240
ESI: 0000008b EDI: c050e829 EBP: 0000000a ESP: dcbade6c
DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
Process config (pid: 1419, ti=dcbac000 task=de9ee240 task.ti=dcbac000)
Stack:
0000000b dcbadfb4 00000001 ffffffff 0000008d 5059a9c3 0000008b de9ee240
<0> c050e829 0000000a c0123185 dcbadf00 c012bdbc dcfd710c de9ee240 de84b340
<0> dcbadfb4 de9ee240 dcfd7040 dcbadf80 de9ee240 dcfd710c de9ee4a8 de9ee3fc
Call Trace:
[<c050e829>] ? do_page_fault+0x0/0x354
[<c0123185>] ? do_group_exit+0x3e/0x5f
[<c012bdbc>] ? get_signal_to_deliver+0x2f7/0x307
[<c050e829>] ? do_page_fault+0x0/0x354
[<c0101b71>] ? do_signal+0x56/0x63c
[<c016badc>] ? print_vma_addr+0xaa/0xd2
[<c011618e>] ? bad_area+0x34/0x39
[<c050ea22>] ? do_page_fault+0x1f9/0x354
[<c0402acf>] ? sys_socketcall+0xf2/0x1a8
[<c050e829>] ? do_page_fault+0x0/0x354
[<c01023a5>] ? do_notify_resume+0x20/0x40
[<c050e829>] ? do_page_fault+0x0/0x354
[<c050c82e>] ? work_notifysig+0x13/0x19
[<c050e829>] ? do_page_fault+0x0/0x354
Code: 00 89 d8 e8 6b fe ff ff 89 d8 e8 b7 e6 06 00 e8 4c 31 fe ff 83 7c 24 08 00 74 0a b8 01 00 00 00 e8 16 ca 15 00 8b 43 04 8b 40 04 <8b> 40 24 e8 34 c5 01 00 89 d8 e8 a9 22 fe ff 89 d8 e8 57 5c 03
EIP: [<c0122c63>] do_exit+0x19c/0x503 SS:ESP 0068:dcbade6c
CR2: 0000000000000024

论坛徽章:
0
2 [报告]
发表于 2012-09-20 08:42 |只看该作者
这个需要界定你的非法是什么意思?一般意义上的内核访问内存非法触发的是13号异常,General Protection。
但按你的意思貌似是访问的地址没有所对应的物理页,此时触发14号异常,Page Fault。
以上针对intel X86(其它的我也不熟),具体请翻看intel手册:Intel® 64 and IA-32 Architectures Software Developer's Manual。

论坛徽章:
0
3 [报告]
发表于 2012-09-20 09:03 |只看该作者
lenky0401 发表于 2012-09-20 08:42
这个需要界定你的非法是什么意思?一般意义上的内核访问内存非法触发的是13号异常,General Protection。
...


主要是想知道到底是用户态进程代码内存异常还是内核进程代码内存异常,还是两者都是
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP