好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

(可编)实验环境的使用实验报告.docx

10页
  • 卖家[上传人]:创飞
  • 文档编号:237827507
  • 上传时间:2022-01-10
  • 文档格式:DOCX
  • 文档大小:181.93KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 计算机科学与技术计算机科学与课程编号0906553课程名称实验项目名称学号姓名学生所在院实验室名称操作系统实验报告操作系统实验环境的使用年级专业指导老师技术学院哈尔滨工程大学计算机科学与技术学院实验环境的使用一.实验概述1. 实验名称:实验环境的使用2. 实验目的:1) 熟悉操作系统集成实验环境 OS Lab 的基本使用方法;2) 练习编译、调试 EOS 操作系统内核以及 EOS 应用程序3. 实验类型:验证4. 实验内容:1) 准备实验,启动 OS Lab;2) 学习 OS Lab 的基本使用方法;3) EOS 内核项目的生成和调试;4) EOS 应用程序项目的生成和调试;5) 退出 OS Lab;6) 保存 EOS 内核项目二.实验环境操作系统: windows XP编译器: Tevalaton OS Lab语言: C++三.实验过程1.实验过程: 1)启动2)学习 程序,熟悉OS Lab,在启动后弹出的对话框中填入学号、姓名;OS Lab 的基本使用方法,使用 OS Lab 编写一个 windows 控制应用台应用OS Lab 的基本使用方法(主要包括新建项目、生成项目、调试项目等) ;在“文件”菜单中选择新建项目,并选择项目模板“控制台应用程序” 。

      3)点击 F5 生成项目,并对结果中的问题进行修改如果源代码中存在语法错误, “输出”窗口会输出相应的错误信息(包括错误所在文件的路径, 错误 在文件中的位置,以及错误原因) , 并在最后提示生成失败此时在“输出”窗口中双击错误信息所在的 行, OS Lab 会使用源代码编辑器打开错误所在的文件,并自动定位到错误对应的代码行可以在源代码文 件中故意输入一些错误的代码(例如删除一个代码行结尾的分号) ,然后再次生成项目,然后在“输出” 窗口中双击错误信息来定位存在错误的代码行,将代码修改正确后再生成项目4)执行项目,在 OS Lab 中选择“调试”菜单中的“开始执行行刚刚生成的 Windows 控制台应 用程序启动执行后会弹出一个(不调试 )”,可以执Windows 控制台窗口, 显示控制台应用程序输出的内容 按任意键即可关 闭此 Windows 控制台窗口5)调试项目,点击“项目管理器”窗口中的“源文件”文件夹节点,在弹出的快捷菜单中选择“添加”中 的“添加新文件” ,文件中的函数如下所示。

      int test1(int n){n++;return n;}6)将主函数进行修改7) 使用断点中断执行, 在 main 函数中定义变量 n 的代码行添加一个断点, 在“调试”菜单中选择“启动调试” , Windows 控制台应用程序开始执行,随后 OS Lab 窗口被自 动激活,并且在刚刚添加断点的代码行左侧空白中显示一个黄色箭头,表示程序已经在此行代码 处中断执行 (也就是说下一个要执行的就是此行代码) 此时查看控制台应用程序的窗口,可以看到窗口中没有输出 n 的值8)选择逐过程调试,可以看到控制台应用程序窗口,已经打印了 n 的值,结束调试9)再次启动程序,程序依旧会在断点处中断,此时采用逐语句进行调试,可以发现黄色箭头指向了 test1 中的函数,选择“跳出” ,会跳出 test1 函数,返回到上级函数中继续调试;10)查看变量的值,将鼠标移动到源代码编辑器中变量 一个窗口显示出变量 n 当前的值(由 于此时还没有给变量 值)。

      n 的名称上,此时会弹出n 赋值,所以是一个随机在源代码编辑器中变量 n 的名称上点击鼠标右键,在弹出的快捷菜单中选择“快速监视”,可以 使用“快速监视”对话框查看变量 n 的值然后,可以点击“关闭”按钮关闭“快速监视”对话 框11) 调用堆栈, 启动调试, 会在之前设置的断点处中断, 选择 “调试” 菜单 “窗口”中的“调用堆栈” ,激活“调用堆栈”窗口可以看到当前“调用堆 栈”窗口中只有一个 main 函数(显示的内容还包括了参数值和函数地址) 采用逐过程调试,直到进入到 test1 函数,查看“调用堆栈”窗口可以发现在堆栈上有两个函数 test1和 main其中当前正在调试的 test1 函数在栈顶位置, main 函数在栈底位置说明是在 main 函数中调用了 test1 函数在 “调用堆栈” 窗口中双击 main 函数所在的行, 会有一个绿色箭头指向 main 函数所在的行,表 示此函数是当前调用堆栈中的活动函数。

      同时,会将 main 函数所在的源代码文件打开,并也使 用一个绿色箭头指向 test1 函数返回后的位置反复双击“调用堆栈”窗口中 Func 函数和 main 函数所在的行,查看“监视”窗口中变量 n 的值, 可以看到在不同的堆栈帧被激活时, OS Lab 调试器会自动更新“监视”窗口中的数据,显示出对 应于当前活动堆栈帧的信息结束调试12)新建项目,选择项目模板“ EOS Kernel ”13)生成项目,打开 C:\eos\debug 文件夹,查看生成的对象文件和目标文件找到 boot.bin、 loader.bin 和 kernel.dll 三个二进制文件, 这三个文件就是 EOS 操作系统在运行时需要的可执行文件 OS Lab 每次启动运行 EOS 操作系统之前,都会将这三个文件写入一个软盘镜像文件中, 然后让虚拟机运 行这个软盘镜像中的 EOS (相当于将写有这三个二进制文件的软盘放入一个物理机的软盘驱动器 中,然后按下开机按 钮) 。

      找到 libkernel.a 文件,此文件是 EOS 内核文件 kernel.dll 对应的导 入库文件14)在“项目管理器”窗口的文件夹中找到 start.c 文件节点,双击此文件节点使用 源 代 码 编 辑 器 打 开 start.c 文 件 在 start.c 文 件 中 KiSystemStartup 函 数 的“KiInitializePic(); ”语句所在行添加一个断点,继续调试,熟悉各种调试功能的使用方法15)查看软盘镜像文件的内容,在“项目管理器”窗口中双击软盘镜像文件Floppy.img ,就会使用 FloppyImageEditor 工具打开此文件在 FloppyImageEditor 工具的文件列表中可以找到 loader.bin 文件和 kernel.dll 文件, 这两个文件都是在启动调试时被写入软盘镜像文件的(可以查看这两个文件的修改日期) boot.bin 文件在启动调试时被写入了软盘镜像的引导扇区中,不 受软盘文件系统的管理,所以在文件列表中找不到此文件。

      关闭 FloppyImageEditor 工具16) 点击 OS Lab 工具栏上的 “项目配置” 下拉列表, 选择下拉列表中的 项目配置, “Release”项目配置被设置为新的活动项目配置,生成项目17) SDK 文件夹中提供了开发 EOS 应用程序需要的所有文件打开“ Release”SDK 文件夹中的 bin 文件夹,可以 看到有两个名称分别为 debug 和 release 的文件夹 debug文件夹是在使用 debug 配置生成项目 时生成的, 其中存放了调试版本的 EOS 二进制 文件 release 文件夹是在使用 release 配置生成 项目时生成的,其中存放了发布版本的 EOS 二进制文件 (不包含调试信息) 分别打开这两个文 件夹查看其中包含的文件18)新建 EOS 应用程序项目,生成项目,打开 C:\eosapp\debug 文件夹,查看生成的对象文件和目标文件其中的 EOSApp.exe 就是 EOS 应用程序的可执行文件。

      OS Lab 每次启动执行 EOS 应用程序时,都会将 EOS 应用程序的可执行文件写入软盘镜像,并且会将 SDK 文件夹中对应配置( Debug 或 Release)的二进制文件写入软盘 镜像,然后让虚拟机。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.