缺页异常 & 用户态栈越界访存例子(?_?没有预期结果出现,没找出原因)

24 views
Skip to first unread message

马运南

unread,
Apr 10, 2013, 10:59:52 PM4/10/13
to 2012-ustc-l...@googlegroups.com
====================
test1.c
不断递归,每次调用自身都填充4K的大小。填充2020个页面左右,出现段错误。

====================
test3.c
目的为捕获段错误信号,SIGSEGV。不停的在栈顶向低地址推进1K,2K...8000K...的位置填充字符。在大约8180K(设置用户态栈大小为8192K)的位置出现段错误,SIGSEGV。

====================
test2.c
在用户态栈顶指针的位置再向低地址方向(65535+32*sizeof(unsigned long)-N, N>0)的位置上填充数据。在内核mm/fault.c文件中,do_page_fault函数有一个和用户态栈顶相关的缓冲区,在缓冲区内且超出栈顶的区域访存,不会被认为是错误。test2的目的为在远超出缓冲区位置但未超出用户态栈大小的区域访存,“期待”能获得一个SIGSEGV信号,段错误。
(?_?)结果为,没有错误产生。(?_?)
缺页.ppt
stacktest.zip
Reply all
Reply to author
Forward
0 new messages