实验一实验环境的使用.docx
《实验一实验环境的使用.docx》由会员分享,可在线阅读,更多相关《实验一实验环境的使用.docx(18页珍藏版)》请在冰豆网上搜索。
实验一实验环境的使用
上海应用技术学院
程序设计语言实验报告
实验名称
实验环境得使用
实验序号
实验一
实验日期
姓名
学 号
指导教师
专 业
计算机科学与技术
班 级
成 绩
一、实验目得及要求
1、熟悉操作系统集成实验环境OSLab得基本使用方法、
2、练习编译、调试EOS操作系统内核以及EOS应用程序。
二、实验环境
Windows XP;TevationOSLab。
三、实验内容
1启动OSLab
2学习OSLab得基本使用方法
2、1 新建Windows控制台应用程序项目
1、新建一个Windows控制台应用程序项目得步骤如下:
(1)在“文件"菜单中选择“新建”,然后单击“项目”、
(2)在“新建项目"对话框中,选择项目模板“控制台应用程序(c)"。
(3)在“名称”中输入新项目使用得文件夹名称“oslab"。
(4)在“位置”中输入新项目保存在磁盘上得位置“C:
\Test”。
(5)点击“确定"按钮,结果如图1所示。
图1
2、创建完毕后OSLab会自动打开这个新建得项目、在“项目管理器”窗口中,树得根节点表示项目,可以瞧到项目得名称就是“console”,各个子节点就是项目包含得文件夹或者文件。
此项目得源代码主要包含一个头文件“console。
h”与一个C语言源文件“console、c”,如图2所示。
图2
2。
2 生成项目
在“生成”菜单中选择“生成项目”。
在项目得生成过程中,“输出”窗口会实时显示生成得进度与结果、如果源代码中不包含语法错误,会在最后提示生成成功,如图3所示。
图3
2、3执行项目
在OSLab中选择“调试”菜单中得“开始执行(不调试)”,就可以执行此控制台应用程序、启动执行后会弹出一个Windows控制台窗口,显示控制台应用程序输出得内容、按任意键即可关闭此控制台窗口,结果如图4。
图4
2.4调试项目
1、调试功能之前,对例子程序进行必要得修改,步骤如下:
(1)右键点击“项目管理器”窗口中得“源文件”文件夹节点,在弹出得快捷菜单中 选择“添加”中得“添加新文件”。
(2)在弹出得“添加新文件"对话框中选择“C源文件”模板。
(3)在“名称”中输入文件名称“func”、
(4)点击“添加"按钮添加并自动打开文件func.c,此时得“项目管理器"窗口如图5所示。
图5
2、在func。
c文件中添加函数:
ﻫint Func(intn)
{ﻫn=n +1;ﻫ return n;
}
3、点击源代码编辑器上方得console。
c标签,切换到console、c文件、将main 函数修改为:
intmain (int argc,char* argv[])
{ﻫ int Func(intn);//声明Func函数ﻫ
intn= 0;ﻫ n= Func(10);
printf ("HelloWorld!
\n");
return 0;ﻫ}
4、代码修改完毕后按F7(“生成项目”功能得快捷键)。
注意查瞧“输出”窗口中得内容,如果代码中存在语法错误,就根据提示进行修改,直到成功生成项目,结果如图6所示。
图6
2、4、1 使用断点中断执行
1、在main函数中定义变量n得代码行
int n=0;
上点击鼠标右键,在弹出得快捷菜单中选择“插入/删除断点”,如图7、
图7
2、在“调试”菜单中选择“启动调试”,Windows控制台应用程序开始执行,随后OSLab窗口被自动激活,并且在刚刚添加断点得代码行左侧空白中显示了一个黄色箭头,表示程序已经在此行代码处中断执行,如图8、
图8
3、激活Windows控制台应用程序得窗口如图9,可以瞧到窗口中没有输出任何内容,因为printf函数还没有被执行。
图9
2、4。
2单步调试
1、在OSLab得“调试”菜单中选择“逐过程”,“逐过程"功能会执行黄色箭头当前指向得代码行,并将黄色箭头指向下一个要执行得代码行,如图10。
图10
2、按F10(“逐过程"功能得快捷键),黄色箭头就指向了调用printf函数得代码行。
查瞧控制台应用程序窗口,仍然没有任何输出,如图11。
图11
3、再次按F10执行printf函数,查瞧控制台应用程序窗口,可以瞧到已经打印出了内容,如图12、
图12
4、仔细体会“逐过程”调试功能后,在“调试”菜单中选择“停止调试",结束此次调试、
5、按照下面得步骤练习使用“逐语句”功能与“跳出”功能:
(1)按F5(“启动调试”功能得快捷键),仍然会在之前设置得断点处中断、
(2)按F10逐过程调试,此时黄色箭头指向了调用函数Func得代码行。
(3)在“调试”菜单中选择“逐语句”,可以发现黄色箭头指向了函数Func中,说明“逐语句"功能可以进入函数来调试函数中得语句。
(4)选择“调试”菜单中得“跳出”,会跳出Func函数,返回到上级函数中继续调试(Func函数已经执行完毕)。
(5)按SHIFT+F5(“停止调试”功能得快捷键),结束此次调试。
2、4、3查瞧变量得值
1、在调试得过程中,OS Lab提供了三种查瞧变量值得方法,按照下面得步骤练习这些方法:
(1)按F5启动调试,仍然会在之前设置得断点处中断。
(2)将鼠标移动到源代码编辑器中变量n得名称上,此时会弹出一个窗口显示出变量n当前得值(由于此时还没有给变量n赋值,所以就是一个随机值)、
(3)在源代码编辑器中变量n得名称上点击鼠标右键,在弹出得快捷菜单中选择“快速监视",可以使用“快速监视"对话框查瞧变量n得值、点击“关闭”按钮关闭“快速监视”对话框,如图13。
图13
2、在源代码编辑器中变量n得名称上点击鼠标右键,在弹出得快捷菜单中选择“添加监视”,变量n就被添加到了“监视”窗口中。
使用“监视”窗口可以随时查瞧变量得值与类型、此时按F10进行一次单步调试,可以瞧到“监视”窗口中变量n得值会变为0,如图14-15:
如图14
如图15
2。
4。
4 调用堆栈
使用“调用堆栈”窗口可以在调试得过程中查瞧当前堆栈上得函数,帮助理解函数得调用层次与调用过程。
按照下面得步骤练习使用“调用堆栈"窗口:
(1)按F5启动调试,仍然会在之前设置得断点处中断。
(2)选择“调试”菜单“窗口"中得“调用堆栈”,激活“调用堆栈”窗口。
可以瞧到当前“调用堆栈”窗口中只有一个main函数,如图16。
图16
(3)按F11调试进入Func函数,查瞧“调用堆栈”窗口可以发现在堆栈上有两个函数Func与main,其中当前正在调试得Func函数在栈顶位置,main函数在栈底位置。
说明就是在main函数中调用了Func函数。
在“调用堆栈”窗口中双击main函数所在得行,会有一个绿色箭头指向main函数所在得行,表示此函数就是当前调用堆栈中得活动函数。
同时会将main函数所在得源代码文件打开,并也使用一个绿色箭头指向Func函数返回后得位置,如图17、
图17
(4)在“调用堆栈”窗口中双击Func函数所在得行,可以重新激活此堆栈帧,并显示对应得源代码、
(5)反复双击“调用堆栈”窗口中Func函数与main函数所在得行,查瞧“监视”窗口中变量n得值,可以瞧到在不同得堆栈帧被激活时,OS Lab调试器会自动更新“监视”窗口中得数据,显示出对应于当前活动堆栈帧得信息、
(6)结束此次调试。
3 EOS内核得编译与调试
之前练习了对Windows控制台应用程序项目得各项操作,对EOS内核项目得各项操作(包括新建、生成与各种调试功能等)与对Windows控制台项目得操作就是完全一致得。
所以,下面实验内容得重点不再就是各种操作得具体步骤,而应将注意力放在对EOS操作系统内核项目得理解上。
3.1 新建EOS内核项目
1、新建一个EOS内核项目得步骤如下:
(1)在“文件"菜单中选择“新建",然后单击“项目”。
(2)在“新建项目"对话框中,选择项目模板“EOS Kernel”。
(3)在“名称"中输入新项目使用得文件夹名称“eos”。
(4)在“位置”中输入新项目保存在磁盘上得位置“C:
\"。
(5)点击“确定”按钮,结果如图18、
图18
此项目就就是一个EOS操作系统内核项目,包含了EOS操作系统内核得所有源代码文件。
2、接下来在“项目管理器”窗口中查瞧EOS内核项目包含得文件夹与源代码文件,可以瞧到不同得文件夹包含了EOS操作系统不同模块得源代码文件,例如“mm"文件夹中包含了内存管理模块得源代码文件,“boot"文件夹中包含了软盘引导扇区程序与加载程序得源代码文件如图19。
图19
3。
2生成项目
1、按F7生成项目,同时查瞧“输出”窗口中得内容,确认生成成功。
2、打开C:
\eos\debug文件夹,查瞧生成得对象文件与目标文件、找到boot.bin、loader、bin与kernel。
dll三个二进制文件,这三个文件就就是EOS操作系统在运行时需要得可执行文件、OS Lab每次启动运行EOS操作系统之前,都会将这三个文件写入一个软盘镜像文件中,然后让虚拟机运行这个软盘镜像中得EOS(相当于将写有这三个二进制文件得软盘放入一个物理机得软盘驱动器中,然后按下开机按钮)。
找到libkernel.a文件,此文件就是EOS内核文件kernel。
dll对应得导入库文件如图20、
图20
3.3 调试项目
1、在“项目管理器”窗口得ke文件夹中找到start。
c文件节点,双击此文件节点使用源代码编辑器打开start.c文件如图21、
图21
在start。
c文件中KiSystemStartup函数得“KiInitializePic();”语句所在行(第61行)添加一个断点。
2、按F5启动调试,虚拟机开始运行软盘镜像中得EOS。
在虚拟机窗口中可以瞧到EOS启动得过程。
随后EOS会在刚刚添加得断点处中断执行,激活虚拟机窗口可以瞧到EOS也不再继续运行了。
各种调试功能(包括单步调试、查瞧变量得值与各个调试工具窗口)得使用方法与调试Windows控制台程序完全相同,可以自己练习。
3、按F5继续执行。
查瞧虚拟机窗口,显示EOS操作系统已经启动,并且EOS得控制台程序已经开始运行了。
4、在“调试”菜单中选择“停止调试”,调试被终止。
如图22。
图22
3.4查瞧软盘镜像文件中得内容
在“项目管理器”窗口中双击软盘镜像文件Floppy。
img,就会使用FloppyImageEditor工具打开此文件(在FloppyImageEditor工具中按F1可以查瞧此工具得帮助文件)。
在FloppyImageEditor工具得文件列表中可以找到loader。
bin文件与kernel、dll文件,这两个文件都就是在启动调试时被写入软盘镜像文件得(可以查瞧这两个文件得修改日期)。
boot。
bin文件在启动调试时被写入了软盘镜像得引导扇区中,不受软盘文件系统得管理,所以在文件列表中找不到此文件、关闭FloppyImageEditor工具、
3、5查瞧EOSSDK(SoftwareDevelopment Kit)文件夹
1、点击OSLab工具栏上得“项目配置"下拉列表,选择下拉列表中得“Release”项目配置,“Release"项目配置被设置为新得活动项目配置(原来得活动项目配置就是“Debug")、
2、按F7使用Release配置生成项目、如图23。
图23
3、生成完毕后,