虚拟机实验环境配置与使用(计算机系统2)

一、 实验目标:

熟悉Linux上C程序的编译和调试工具,包括以下内容:

1. 了解Linux操作系统及其常用命令

2. 掌握编译工具gcc的基本用法

3. 掌握使用gdb进行程序调试

二、实验环境与工件

1.个人电脑

2. Fedora 13 Linux 操作系统

3. gcc

4. gdb

三、实验内容与步骤

1. 实验环境配置

先要下载VMware Workstation

(这里是在https://pan.baidu.com/s/1MdEx83411Hc101KRO_Hkjg?pwd=e37p下载的,密匙:ZF3R0-FHED2-M80TY-8QYGC-NPKYF)以及还有镜像(这里我是下载了两个)

接着点击创建新的虚拟机

选择自定义(高级),然后点击下一步

浏览下载好的镜像

然后正常的个性化Linux

给自己的虚拟机命名

处理器设置1个,内核数量为两个,然后点击下一步

分配空间(一般是4G)

选择使用网络地址转换(NAT)(E)

选择LST logic SAS(S)

选择SCSI(S)

选择创建新虚拟磁盘

最大磁盘设置200G,然后取消勾选立即分配所有磁盘空间(因为会立即分配占用内存空间),选择“将虚拟磁盘拆分成多个文件”(M)

点击开启此虚拟机

然后点击选项搜索“终端”

2.1首先切换为超级用户。

输入su

Ps:此处一开始失败,权限不对,是因为屏蔽了此功能,需要输入(sudo passwd).

2.2创建新用户, 设置新建用户的密码

Ps:只有设置了密码才能激活用户,否则无法以该用户身份登录

2.3关闭终端,然后重新打开(注销当前用户,并以新建的用户身份登录)输入whoami,显示当前用户名。

3.1建用户主目录下创建子目录:gdbdebug, 并进入gdbdebug 子目录。

 创建子目录:mkdir + 目录名

 进入子目录:cd 子目录名

 显示当前所在目录:pwd

4.使用vi

先touch reverse.h创建或者直接vi reverse.h

4.1.1编辑reverse.h(声明函数但不给出定义)

Ps:不要忘记“;”,不然后面报错会很厉害。

4.1.2编辑reverse.c

4.1.3编译reverse.c

(这是改过的)

由此我们知道可以把reverse.c修改成

4.1.4运行程序

4.2.1找出问题进行调试(gcc -g reverse.c -o reverse1)ps:最后一个不是字母l而且数字1

4.2.2启用GDB调试

4.2.3键入list,查看源代码并根据行号/函数名设置断点

4.2.4在main函数处添加断点

4.2.5 猜测错误出现在20,22,24行,依次添加断点.

4.2.6 添加完断点后,输入info break查看断点信息.

4.2.7 观察变量值,并作分析,推测错误.

4.2.8修正代码

4.2.9重新编译并运行,结果为“xjl”,满足逆序输出,答案正确。

Ps:这里需要重新编译不重新编译跑出来的结果还是之前代码的结果。

四、实验结果

输入“ljx”,运行结果为“xjl”,正确。

五、实验总结与体会

总结:对虚拟机第一次接触,有很多概念上不是很了解从b站上了解了什么是虚拟机,以及用处,了解了Linux系统。费了不少时间,但也很感谢助教的帮忙解答,以及同学的指导,其中碰到很多问题比如vi编辑器有问题,一直换行输出a,b,c但后面在同学的教导下才知道是vi出了问题需要重新装,以及同学教了我一些比较实用的指令比如向上的箭头可以返回你上一条敲的指令,可以更加快捷的完成任务,就是这次实验下载了两个镜像,重复做了两次实验,两个镜像的终端也完全不同,花了很多时间,但最后还是做出来了,结果是好的。

体会:需要多看b站的学习视频,有不会的地方要及时请教助教和同学老师,细看指导的ppt,做到自己消化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527906.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】【LeetCode】循环队列

目录 (一)题目描述 (二)数据结构的选择 (三)函数接口的分析实现 正文开始: (一)题目描述 题目链接:622. 设计循环队列 设计你的循环队列实现。 循环队列是…

【设计模式】(四)设计模式之工厂模式

1. 工厂模式介绍 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式有三种实现方式: 简单工厂模式工厂方法模式抽象工厂模式 2. 工厂方…

【MATLAB第100期】基于MATLAB的多种改进拉丁超立方LHS数据抽样方法

【MATLAB第100期】基于MATLAB的多种改进拉丁超立方LHS数据抽样方法 一、LHS种类 1、LHS 使用随机搜索生成拉丁超立方体样本。LHS函数特别适用于非常大的设计,当本机MATLAB函数内存不足时。这可能取决于MATLAB版本和所用机器的配置。当尝试运行“lhsdesign”但未成…

ThreadLocal使用,配合拦截器HandlerInterceptor使用

ThreadLocal使用,配合拦截器HandlerInterceptor使用 ThreadLocal的使用场景通常涉及多线程环境下需要为每个线程保留独立状态的情况。它提供了一种简单的方式来管理线程本地变量,使得每个线程都可以独立地访问和修改自己的变量副本,而不会影…

线程的魔法:揭开现代操作系统并发执行的面纱

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

算法第二十六天-删除有序数组中的重复项Ⅱ

删除有序数组中的重复项 题目要求 解题思路 题目要求中提到原地修改,那么肯定需要一个指针指向当前即将放置元素的位置,需要另外一个指针向后遍历所有元素,所以[双指针]解法呼之欲出。 慢指针slow:指向当前元素放置的位置&…

B+树 和 跳表 的结构及区别,不同的用途【mysql的索引为什么使用B+树而不使用跳表?】

导语: 详解B树与跳表的结构及区别,描述B树与跳表新增数据的过程,解释MySQL与Redis选择对应结构的原因。 mysql数据表里直接遍历这一行行数据,性能就是O(n),比较慢。为了加速查询,使用了B树来做索引&#x…

1572.矩阵对角线元素的和

刷算法题: 第一遍:1.看5分钟,没思路看题解 2.通过题解改进自己的解法,并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步,下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

ENVI必须会教程—Landsat卫星的加载与波段读取

实验4:读取Landsat影像 目的:了解Landsat影像读取方法,熟悉各波段及组合 过程: Landsat7影像: ①单波段影像加载:打开ENVI软件,点击文件,从文件打开准备好的L7数据,发…

MybatisPlus 学习笔记

1 . 快速入门 1 . 1 环境准备 导入数据库 导入基础项目 : 1.2.快速开始 比如我们要实现User表的CRUD,只需要下面几步: 引入MybatisPlus依赖 定义Mapper 1.2.1引入依赖 MybatisPlus提供了starter,实现了自动Mybatis以及MybatisPlus的自…

Axure原型设计项目效果 全国职业院校技能大赛物联网应用开发赛项项目原型设计题目

目录 前言 一、2022年任务书3效果图 二、2022年任务书5效果图 三、2022年国赛正式赛卷 四、2023年国赛第一套样题 五、2023年国赛第二套样题 六、2023年国赛第三套样题 七、2023年国赛第四套样题 八、2023年国赛第七套样题 九、2023年国赛正式赛题(第八套…

python单例模式应用之pymongo连接

文章目录 单例模式介绍模块简介安装简单的连接使用单例模式的连接单例类的实现配置的使用单例模式的测试 单例连接的调用 https://gitee.com/allen-huang/python 单例模式介绍 适用场景: 单例模式只允许创建一个对象,因此节省内存,加快对象访…