虚拟机实验环境配置与使用(计算机系统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.mzph.cn/news/735256.shtml

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

相关文章

【Python】牛客网—软件开发-Python专项练习(day1)

1.(单选)下面哪个是Python中不可变的数据结构? A.set B.list C.tuple D.dict 可变数据类型:列表list[ ]、字典dict{ }、集合set{ }(能查询,也可更改)数据发生改变,但内存地址不变 不…

OPCUA 学习笔记:程序模型

无论是边缘控制器,还是PLC 中,除了信息模型之外,还有应用程序,这些程序可能是IEC61131-3 编写的程序,也可能是其它程序开发的可执行程序。 尽管OPCUA 描述模型能力很强,但是它缺乏算法的描述方式。但是OPCU…

YOLOV5 初体验:简单猫和老鼠数据集模型训练

1、前言 前两天,通过OpenCV 对猫和老鼠视频的抽取,提取了48张图片。这里不再介绍,可以参考之前的文章:利用OpenCV 抽取视频的图片,并制作目标检测数据集-CSDN博客 数据的目录如下: 项目的下载见文末 2、制…

MongoDB聚合运算符:$dayOfYear

$dayOfYear返回日期在当年的那一天&#xff0c;值的范围1~366。 语法 { $dayOfYear: <dateExpression> }参数说明&#xff1a; <dateExpression>为可被解析为Date、Timestamp或ObjectID的表达式<dateExpression>也可以是一个文档{ date: <dateExpressi…

【Web】浅聊Java反序列化之Rome——EqualsBeanObjectBean

目录 简介 原理分析 ToStringBean EqualsBean ObjectBean EXP ①EqualsBean直球纯享版 ②EqualsBean配合ObjectBean优化版 ③纯ObjectBean实现版 关于《浅聊Java反序列化》系列&#xff0c;纯是记录自己的学习历程&#xff0c;宥于本人水平有限&#xff0c;内容很水&a…

Linux运维工具-ywtool-README.md

工具下载链接: 2024.2.29(目前最新)-ywtool工具下载链接 提取码&#xff1a;dhzt 目录 README.md备注:未完成:2023.2.18之前2023.1.282023.2.182023.2.202023.3.202023.4.42023.4.172023.5.212023.6.172023.7.152023.7.212023.7.262023.11.82023.11.29-2023.12.82023.12.13-202…

YOLOv5-Openvino-ByteTrack【CPU】

纯检测如下&#xff1a; YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 注&#xff1a;YOLOv5和YOLOv6代码内容基本一致&#xff01; 全部代码Github&…

类与对象D13

0、什么是类与对象&#xff1a; 类&#xff1a;具有相同特征或者行为的一个群体&#xff1b; 对象&#xff1a;个体 类&#xff1a;模型&#xff08;造对象&#xff09; 对象&#xff1a;模型生出来&#xff08;造出来&#xff09;具体的东西。 1、实例属性和类属性的区别&a…

代码随想录Day43:最后一块石头的重量、目标和、一和零

最后一块石头的重量 class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum 0;for(int a : stones){sum a;}int target sum / 2;vector<int> dp(target 1, 0);for(int i 0; i < stones.size(); i){for(int j target; j >…

深入探索时间复杂度:解锁算法性能的关键

在算法的世界里,性能是王道。了解和优化算法的时间复杂度是每个算法工程师的必修课。本篇文章旨在深入探讨时间复杂度的概念、计算方法,以及如何通过时间复杂度来评估算法性能。通过生动的类比和详细的代码示例,我们将一起揭开时间复杂度的神秘面纱,让你轻松掌握这一核心概…

Linux--文件类型与权限

Linux上一切皆文件; 蓝色的是目录文件 Linux不以文件的扩展名来区分文件类型,而是在文件属性中有一列专门记录文件类型. ls -l 可以查看 普通文件:.c .cpp .h .txt .pdf .xls (-) 目录文件:文件夹 (d) 管道文件:用于进程间通信的一种文件 (p) 链接文件:相当于W…

一图看懂Redis持久化机制!

持久化策略 Redis 提供了两种持久化策略&#xff1a; RDB (Redis Database Snapshot) 持久化机制&#xff0c;会在一段时间内生成指定时间点的数据集快照(snapshot) AOF&#xff08;Append Only File&#xff09; 持久化机制&#xff0c;记录 server 端收到的每一条写命令&am…

【开发工具】认识Git | 认识工作区、暂存区、版本库

文章目录 一、Git初识git本质上是一个版本控制器 二、Git的安装 - CentOS三、Git基本操作1. 创建Git本地仓库2. 配置Git3. 认识工作区、暂存区、版本库4. 版本回退5. 撤销修改情况1&#xff1a;对于工作区的代码&#xff0c;还没有add情况二&#xff1a;已经add &#xff0c;但…

OB_GINS学习

OB_GINS学习 组合导航中的杆臂测量加速度计的零偏单位转换受到经纬度以及高程影响的正常重力位的计算公式大地坐标系&#xff08;LBH&#xff09;向空间直角坐标系&#xff08;XYZ&#xff09;的转换及其逆转换导航坐标系&#xff08;n系&#xff09;到地心地固坐标系&#xff…

【Prometheus】DataModel

数据模型 DataModel 指标 Metric metric 包含 metric name 和 metric label 格式&#xff1a; <metric name>{<label name><label value>, ...}例如&#xff1a;服务器 HTTP 接口 /messages 的总请求数 api_http_requests_total{method"POST",…

创建机器学习系统及一些思想

我们在创建一个优秀的神经网络需要一个漫长的循环过程。 先选择一个架构&#xff0c;再对我们的架构进行训练&#xff0c;最后诊断我们的误差&#xff0c;再回到我们重新的循环&#xff0c;直到我们的神经网络足够优秀。这就是机器学习迭代的过程。 误差分析&#xff1a; 我…

【嵌入式——QT】MDI应用程序设计

MDI应用程序就是在主窗口里创建多个同类型的MDI子窗口&#xff0c;这些MDI子窗口在主窗口里显示&#xff0c;并享受主窗口上的工具栏和菜单等操作功能&#xff0c;主窗口上的操作都针对当前活动的MDI子窗口进行。 图示 代码示例 QWMainWindow.h #ifndef QWMAINWINDOW_H …

悬浮工具球(仿 iphone 辅助触控)

悬浮工具球&#xff08;仿 iphone 辅助触控&#xff09; 兼容移动端 touch 事件点击元素以外位置收起解决鼠标抬起触发元素的点击事件问题 Demo Github <template><divref"FloatingBal"class"floating_ball":class"[dragging, isClick]&q…

MT笔试题

前言 某团硬件工程师的笔试题&#xff0c;个人感觉题目的价值还是很高的&#xff0c;分为选择题和编程题&#xff0c;选择题考的是嵌入式基础知识&#xff0c;编程题是两道算法题&#xff0c;一道为简单难度&#xff0c;一道为中等难度 目录 前言选择题编程题 选择题 C语言中变…

Revit-二开之创建几何形体-拉伸体-(9)

创建拉伸体的API Autodesk.Revit.Creation.FamilyltemFactory 类: public Extrusion NewExtrusion(bool isSolid, CurveArrArray profile, SketchPlane sketchPlane, double end);参数说明: • isSolid:拉伸是实体还是剪切体 True 是拉伸体 false是剪切体 • profile: —个平…