口地址。调试内核EOS启动后的状态和行为(1)在控制台中输入命令“ver”后按回车,在控制台中输入命令“pt”后按回车(2)将本实验文件夹中的Helloexe文件添加到软盘镜像文件中,待EOS启动完毕,在EOS控制台中输入命令“hello”后按回车,迅速按CtrlF2切换到控制台2,并输入命令“pt”后按回车。
实验3:进程的创建
31实验目的:1练习使用EOSAPI函数CreateProcess创建一个进程,掌握创建进程的方法,理解进
程和程序的区别;
f2调试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。32实验内容:
1准备实验:启动OSLab,新建一个EOSKe
el项目,新建一个EOS应用程序项目;2练习使用控制台命令创建EOS应用程序的进程;将本实验文件夹中的Helloexe文件添加到软盘镜像文件中,按F7生成EOS应用
项目,按F5启动调试。忽略异常继续执行应用程序,激活虚拟机窗口,待该应用程序执行完毕后,在EOS的控制台中输入命令“AHelloexe”后回车。Helloexe应用程序开始执行;3练习通过编程的方式让应用程序创建另一个应用程序的进程使用NewProcc文件中的源代码替换之前创建的EOS应用程序项目中的EOSAppc文件内的源代码。按F7生成修改后的EOS应用程序项目。按F5启动调试。激活虚拟机窗口查看应用程序输出的内容。首先开始执行并输出内容,父进程创建了子进程(Helloexe)后,子进程开始执行并输出内容,待子进程结束后父进程再继续执行。4调试CreateProcess函数按F5启动调试EOS应用程序,OSLab首先弹出一个调试异常对话框。选择“是”调试异常,调试中断。在mai
函数中调用CreateProcess函数的代码行添加一个断点。按F5继续调试,在断点处中断。按F11调试进入CreateProcess函数进行调试在“调试”菜单的“窗口”中选择“反汇编”,在“反汇编”窗口中显示CreateProcess函数的指令对应的反汇编代码。在“调用堆栈”窗口中双击mai
函数项,设置mai
函数的调用堆栈帧为活动的。在“反汇编”窗口中查看mai
函数的指令所在的虚拟地址都是小于0x80000000,说明应用程序(eosappexe)处于低2G的虚拟地址空间中。在“调用堆栈”窗口中双击CreateProcess函数项,重新设置CreateProcess函数的调用堆栈帧为活动的。关闭“反汇编”窗口。
5调试PsCreateProcess函数;在PsCreateProcess函数调用PspCreateProcessE
viro
me
t函数的代码行添加一个
断点。按F5继续调试,按F11调试进入PspCreateProcessE
viro
me
t函数在调用ObCreateObject函数的代码行添加一个断点。按F5继续调试,按Fr