国开(电大)数据结构课程实验报告5_第1页
国开(电大)数据结构课程实验报告5_第2页
国开(电大)数据结构课程实验报告5_第3页
国开(电大)数据结构课程实验报告5_第4页
国开(电大)数据结构课程实验报告5_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构课程实验报告学生姓名薛书瑶学号1715001250078班级指导老师实验名称实验1实验环境的使用实验成绩实验报告实验概述实验目的:熟悉操作系统集成实验环境OSLab的基本使用方法。实验要求:练习编译、调试EOS操作系统内核以及EOS应用程序。实验基本原理:实验内容实验设计思路、步骤和方法等:实验过程(实验中涉及的记录、数据、分析):1启动OSLab2学习OSLab的基本使用方法2.1新建Windows控制台应用程序项目1、新建一个Windows控制台应用程序项目的步骤如下:(1)在“文件”菜单中选择“新建”,然后单击“项目”。(2)在“新建项目”对话框中,选择项目模板“控制台应用程序(c)”。(3)在“名称”中输入新项目使用的文件夹名称“oslab”。(4)在“位置”中输入新项目保存在磁盘上的位置“C:\Test”。(5)点击“确定”按钮,结果如图1所示。

2.3执行项目在OSLab中选择“调试”菜单中的“开始执行(不调试)”,就可以执行此控制台应用程序。启动执行后会弹出一个Windows控制台窗口,显示控制台应用程序输出的内容。按任意键即可关闭此控制台窗口,结果如图4。2.4调试项目1、调试功能之前,对例子程序进行必要的修改,步骤如下:(1)右键点击“项目管理器”窗口中的“源文件”文件夹节点,在弹出的快捷菜单中选择“添加”中的“添加新文件”。(2)在弹出的“添加新文件”对话框中选择“C源文件”模板。(3)在“名称”中输入文件名称“func”。(4)点击“添加”按钮添加并自动打开文件func.c,此时的“项目管理器”窗口如图5所示。顶目苣理器▼*就□cwiseltEL?夷立件MtensehB占海丈件u]cQFltplt-C|fune.«2、在func.c文件中添加函数:intFunc(intn){n=n+1;returnn;}3、点击源代码编辑器上方的console.c标签,切换到console.c文件。将main函数修改为:intmain(intargc,char*argv[]){intFunc(intn);//声明Func函数intn二0;n=Func(10);printf("HelloWorld!\n");return0;}4、代码修改完毕后按F7(“生成项目”功能的快捷键)。注意查看“输出”窗口中的内容,如果代码中存在语法错误,就根据提示进行修改,直到成功生成项目,结果如图6所示。dH已启动生成:项目:配置:DMs隔正在编译.八tcinscile.c正在琏接…-g"口“-魏计到0个错误.U牛警告=====—=====生威:成功========±=======2.4.1使用断点中断执行1、在main函数中定义变量n的代码行intn=0;上点击鼠标右键,在弹出的快捷菜单中选择“插入/删除断点”,如图7。I订占斥定史握制舍歴用程浮的人口护7#include^cansol&.h*■書"一一ZintiBain(intargc,char*argv[J)7;£g':inr^uncCint//歪駅Furw?函数J10:intn=0tn=Functlo):12printfCHellofierid!Xn*):1疥return0;14-)3、在“调试”菜单中选择“启动调试”,Windows控制台应用程序开始执行,随后OSLab窗口被自动激活,并且在刚刚添加断点的代码行左侧空白中显示了一个黄色箭头,表示程序已经在此行代码处中断执行,如图8。

3、再次按F10执行printf函数,查看控制台应用程序窗口,可以看到已经打印出了内容,如图12。歯帛页con^ole.c了石7了石7匚建史揑制召应用程序的人口点祝sttincltideConsole,h"flint』10lli1314拓main(intargc,charflint』10lli1314拓intn=0;n二Func(lO);printfClfelidWorlds\n*):return0;1elloUorLd!图124、仔细体会“逐过程”调试功能后,在“调试”菜单中选择“停止调试”,结束此次调试。5、按照下面的步骤练习使用“逐语句”功能和“跳出”功能:(1)按F5(“启动调试”功能的快捷键),仍然会在之前设置的断点处中断。(2)按F10逐过程调试,此时黄色箭头指向了调用函数Func的代码行。(3)在“调试”菜单中选择“逐语句”,可以发现黄色箭头指向了函数Func中,说明“逐语句”功能可以进入函数来调试函数中的语句。(4)选择“调试”菜单中的“跳出”,会跳出Func函数,返回到上级函数中继续调试(Func函数已经执行完毕)。(5)按SHIFT+F5(“停止调试”功能的快捷键),结束此次调试。2.4.3查看变量的值1、在调试的过程中,OSLab提供了三种查看变量值的方法,按照下面的步骤练习这些方法:(1)按F5启动调试,仍然会在之前设置的断点处中断。(2)将鼠标移动到源代码编辑器中变量n的名称上,此时会弹出一个窗口显示出变量n当前的值(由于此时还没有给变量n赋值,所以是一个随机值)。(3)在源代码编辑器中变量n的名称上点击鼠标右键,在弹出的快捷菜单中选择“快速监视”,可以使用“快速监视”对话框查看变量n的值。点击“关闭”按钮关闭“快速监视”对话框,如图13。表鈕(S:[■聊计夏甜n■(睡加JE出囲JOuTtWOC2、在源代码编辑器中变量n的名称上点击鼠标右键,在弹出的快捷菜单中选择“添加监视”,变量n就被添加到了“监视”窗口中。使用“监视”窗口可以随时查看变量的值和类型。此时按F10进行一次单步调试,可以看到“监视”窗口中变量n的值会变为0,如图14-15:如罔L1如圈152.4.4调用堆栈使用“调用堆栈”窗口可以在调试的过程中查看当前堆栈上的函数,帮助理解函数的调用层次和调用过程。按照下面的步骤练习使用“调用堆栈”窗口:(1)按F5启动调试,仍然会在之前设置的断点处中断。(2)选择“调试”菜单“窗口”中的“调用堆栈”,激活“调用堆栈”窗口。可以看到当前“调用堆栈”窗口中只有一个main函数,如图16。谓用堆槪名称,wev=0b(3c3faS]也址;0边皿口1北0(3)按F11调试进入Func函数,查看“调用堆栈”窗口可以发现在堆栈上有两个函数Func和main,其中当前正在调试的Func函数在栈顶位置,main函数在栈底位置。说明是在main函数中调用了Func函数。在“调用堆栈”窗口中双击main函数所在的行,会有一个绿色箭头指向main函数所在的行,表示此函数是当前调用堆栈中的活动函数。同时会将main函数所在的源代码文件打开,并也使用一个绿色箭头指向Func函数返回后的位置,如图17。调用堆橈八X名称..jFweCj^口灿〕ititlt:OK004QI^7(4)在“调用堆栈”窗口中双击Func函数所在的行,可以重新激活此堆栈帧,并显示对应的源代码。(5)反复双击“调用堆栈”窗口中Func函数和main函数所在的行,查看“监视”窗口中变量n的值,可以看到在不同的堆栈帧被激活时,OSLab调试器会自动更新“监视”窗口中的数据,显示出对应于当前活动堆栈帧的信息。(6)结束此次调试。3EOS内核的编译和调试之前练习了对Windows控制台应用程序项目的各项操作,对EOS内核项目的各项操作(包括新建、生成和各种调试功能等)与对Windows控制台项目的操作是完全一致的。所以,下面实验内容的重点不再是各种操作的具体步骤,而应将注意力放在对EOS操作系统内核项目的理解上。3.1新建EOS内核项目1、新建一个EOS内核项目的步骤如下:(1)在“文件”菜单中选择“新建”,然后单击“项目”。(2)在“新建项目”对话框中,选择项目模板“EOSKernel”。(3)在“名称”中输入新项目使用的文件夹名称“eos”。(4)在“位置”中输入新项目保存在磁盘上的位置“C:\”。(5)点击“确定”按钮,结果如图18。坛旬曹JS用坛旬曹JS用EM轟FF彌医磅遂帶進EQSKgncl班吕宕静曲:™悅畳迫:曲俄赧番负L诙枣在~蠢二图18此项目就是一个EOS操作系统内核项目,包含了EOS操作系统内核的所有源代码文件。2、接下来在“项目管理器”窗口中查看EOS内核项目包含的文件夹和源代码文件,可以看到不同的文件夹包含了EOS操作系统不同模块的源代码文件,例如“mm”文件夹中包含了内存管理模块的源代码文件,“boot”文件夹中包含了软盘引导扇区程序和加载程序的源代码文件如图19。顶目昔程翻*ttx+!_^be十iJiiiL?■i_[ic*」i366Aki-h弓htmtr.ImtWt,<J.caQIslpl■ffiaQIslpl-obptF<1FleppymeLi1st,,圈193.2生成项目1、按F7生成项目,同时查看“输出”窗口中的内容,确认生成成功。2、打开C:\eos\debug文件夹,查看生成的对象文件和目标文件。找到boot.bin、loader.bin和kernel.dll三个二进制文件,这三个文件就是EOS操作系统在运行时需要的可执行文件。OSLab每次启动运行EOS操作系统之前,都会将这三个文件写入一个软盘镜像文件中,然后让虚拟机运行这个软盘镜像中的EOS(相当于将写有这三个二进制文件的软盘放入一个物理机的软盘驱动器中,然后按下开机按钮)。找到1ibkernel.a文件,此文件是EOS内核文件kernel.dll对应的导入库文件如图20。sat埜LCH3CT.S1H9276^2011-02-1214:34■^lKERNEL.DLL庖用祐时展20H-05吨0W:31圈203.3调试项目1、在“项目管理器”窗口的ke文件夹中找到start.c文件节点,双击此文件节点使用源代码编辑器打开start.c文件如图21。4kerxiel-QSLab规图包0项目但)生盛[町调谢①〕工具癒【』孚述TTI*ReleaseTL,一1—1厂Q启事7-曲-顶目苜堆器▼甲寰「理抬贡5tart.c=i^21在start.c文件中KiSystemStartup函数的“KiInitia1izePic();”语句所在行(第61行)添加一个断点。2、按F5启动调试,虚拟机开始运行软盘镜像中的EOS。在虚拟机窗口中可以看到EOS启动的过程。随后EOS会在刚刚添加的断点处中断执行,激活虚拟机窗口可以看到EOS也不再继续运行了。各种调试功能(包括单步调试、查看变量的值和各个调试工具窗口)的使用方法与调试Windows控制台程序完全相同,可以自己练习。3、按F5继续执行。查看虚拟机窗口,显示EOS操作系统已经启动,并且EOS的控制台程序已经开始运行了。4、在“调试”菜单中选择“停止调试”,调试被终止。如图22o

起館皿start.ck723:VOID鮎KiSyetanEtMftiaiCPTOIDLcaderBlockE)p/*++功能描述.藻華的人口点.Kernel,dll褥oadcr加戟判内存后从这里开怕执年旳i*电■生成£連益丸亠一•1纸计到0个蛰误・0个警吿3.4查看软盘镜像文件中的内容在“项目管理器”窗口中双击软盘镜像文件Floppy.img,就会使用FloppylmageEditor工具打开此文件(在FloppylmageEditor工具中按F1可以查看此工具的帮助文件)。在FloppylmageEditor工具的文件列表中可以找到loader.bin文件和kernel.dll文件,这两个文件都是在启动调试时被写入软盘镜像文件的(可以查看这两个文件的修改日期)。bootbin文件在启动调试时被写入了软盘镜像的引导扇区中,不受软盘文件系统的管理,所以在文件列表中找不到此文件。关闭FloppylmageEditor工具。3.5查看EOSSDK(SoftwareDevelopmentKit)文件夹1、点击OSLab工具栏上的“项目配置”下拉列表,选择下拉列表中的“Release”项目配置,“Release”项目配置被设置为新的活动项目配置(原来的活动项目配置是“Debug”)。2、按F7使用Release配置生成项目。如图23。)顶号也)世成〔因關试也)TM(D耘口酗〕帮助z迅垢页-Sturt.e输出制制制el裟曇7』制制制el裟曇1亍文件。1亍文件■>]个文芹-綢桶。代捱仝間二二二二二二二二二二二生成:成功二二二二二二二二二二二二二二二二二二二二

图233、生成完毕后,使用Windows资源管理器打开C:\eos文件夹,可以发现在文件夹中多出了一个SDK文件夹,此文件夹就是在生成EOSKernel项目的同时自动生成的如图24。口口口HxLtMC4、SDK文件夹中提供了开发EOS应用程序需要的所有文件。打开SDK文件夹中的bin文件夹,可以看到有两个名称分别为debug和release的文件夹如图25。debug文件夹是在使用debug配置生成项目时生成的,其中存放了调试版本的EOS二进制文件。release文件夹是在使用release配置生成项目时生成的,其中存放了发布版本的EOS二进制文件。分别打开这两个文件夹查看其中包含的文件。jxVin图255、打开SDK文件夹中的inc文件夹如图26,可以看到此文件夹中存放了EOS用于导出API函数和重要数据类型定义的头文件,在编写EOS应用程序时必须包含这些头文件。jec\s起lJ血lSJ脳图前4EOS应用程序的编译和调试4.1新建EOS应用程序项目新建一个EOS内核项目的步骤如下:(1)在“文件”菜单中选择“新建”,然后单击“项目”。(2)在“新建项目”对话框中,选择项目模板“EOS应用程序”。(3)在“名称”中输入新项目使用的文件夹名称“eosapp”。(4)在“位置”中输入新项目保存在磁盘上的位置“C:\”。(5)点击“确定”按钮。如图27。此项目就是一个EOS应用程序项目。使用Windows资源管理器将之前生成的C:\eos\sdk文件夹拷贝覆盖到C:\eosapp\sdk位置。这样EOS应用程序就可以使用最新版本的EOSSDK文件夹了。住制會应用注制由住用EMSnt已誥聞程那程序阅程序(C4+-)翻眇|to«PP』id;帳甌:昌9§(sects舷⑥-■紳占4.2生成项目1、按F7生成项目,同时查看“输出”窗口中的内容,确认生成成功。2、打开C:\eosapp\debug文件夹,查看生成的对象文件和目标文件。其中的eosapp.exe就是EOS应用程序的可执行文件。OSLab每次启动EOS应用程序时,都会将EOS应用程序的可执行文件写入软盘镜像,并且会将SDK文件夹中对应配置(Debug或Release)的二进制文件写入软盘镜像,然后让虚拟机运行软盘镜像中的EOS,待EOS启动后再自动执行EOS应用程序。4.3调试项目1、按F5启动调试。OSLab会弹出一个调试异常对话框,选择“是”调试异常,EOS应用程序会中断执行,黄色箭头指向下一个要执行的代码行。2、在eosapp.c的printf(”Helloworld!\n”);代码行添加一个断点,然后按F5继续调试,在此断点处中断。3、按F10单步调试,查看虚拟机窗口,打印输出了“Helloworld!”。4、按F5继续调试,查看虚拟机窗口,EOS应用程序执行完毕。5、在“调试”菜单中选择“停止调试”,调试被终止。6、选择“调试”菜单中的“删除所有断点”。只有删除所有断点后才能按F5再次启动调试,否则启动调试会失败。如图28-29。起惯页EDSAppX生战亠己倉动生成:琉目:ECSApp,K7暨7Drbug-正在岁译…_n»imtcrtOig5-tdio>cstd.1ibLcstring,c

E0S6jp.c_o.lgdosjp迁在44轅…2EWEDS应用憩序讎…-Sci+?'lo个错i見0卒書吿一―-XSJ-—■帯j-冃匕卫jh-———-—击E■奋—壬■『」一但■二丄「:一-:.l_VTJ-glhr»^T^I^―——————一一亠—一.詡28图294.4查看软盘镜像文件中的内容使用FloppylmageEditor工具打开该项目中的Floppy.img文件,查看软盘镜像中的文件。loader.bin和kernel.dll是从C:\eosapp\sdk\bin\debug文件夹写入的,C:\eosapp\sdk\bin\debug\boot.bin被写入了软盘镜像文件的引导扇区中。eosapp.exe就是本项目生成的EOS应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论