日期:2014-05-16  浏览次数:20769 次

linux-0.11调试教程,task2参数所在内存页的页目录项和页表项

此文内容在do_execve()函数的change_ldt()函数之后create_table()函数运行之前的情形。change_ldt()函数会调用put_page()函数把参数内存页放置到当前任务的线性地址的末端。

第一步:在页目录表里找到任务2的参数内存页所在的页目录项,算出页表所在的地址0xffd000,因为每个进程64M对应16个字的空间任务2的在第32-47个字处



第二步:根据页表里面的页表项找出内存页所在的地址0xff7000


第三步,可以看出这时的参数块只填充到了0xff7fec


附上change_ldt()之前的页目录项: