当前位置: 首页 > news >正文

苏州网站建设功能搜外友链

苏州网站建设功能,搜外友链,c2c商城网站建设二次开发,机票网站制作目录 一、 实验目标: 二、实验环境与工件: 三、实验内容与步骤 1. 学习并熟悉Linux基本操作,按照要求创建用户。(30分) 2.新建用户主目录下创建子目录:gdbdebug,并进入gdbdebug子目录。将过程和…

目录

一、 实验目标:

二、实验环境与工件:

三、实验内容与步骤

1. 学习并熟悉Linux基本操作,按照要求创建用户。(30分)

2.新建用户主目录下创建子目录:gdbdebug,并进入gdbdebug子目录。将过程和结果截图。(10分)

3. 用vi编辑以下两个文件并编译和运行,截图(30分)

4. 调试并修正reverse.c文件。(30分)

四、实验结果

五、实验总结与体会

附:虚拟机常用指令


写在前面:

上交的实验报告需要包含账户的姓名全拼以及学号,本报告的相应部分已经打码处理,请在自己的环境中完成实验!

一、 实验目标:

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

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

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

二、实验环境与工件:

1.个人电脑

2. Linux操作系统

3. gcc编译器

4. gdb调试工具

三、实验内容与步骤

1. 学习并熟悉Linux基本操作,按照要求创建用户。(30分)

1.1. 首先使用命令$ su切换为超级用户(此处的密码不会显示,照常输入并回车即可)

图:切换为超级用户

1.2. 使用命令# adduser 姓名_学号 创建新用户, 设置新建用户的密码,此处由于最开始的用户名就已经设置正确,故提示用户已经存在。

图:尝试创建新用户

1.3. 注销当前用户,并以新建的用户身份登录,登录后输入命令$ whoami,并进行截图。

2.新建用户主目录下创建子目录:gdbdebug,并进入gdbdebug子目录。将过程和结果截图。(10分)

图:尝试创建gdbdebug子目录

        由图可知,由于目录已经存在,无法执行再次创建命令。

        接下来使用指令$ ls查看所有已存在的目录,可见gdbdebug目录已存在。再使用指令$ cd gdbdebug进入子目录

图:进入gdbdebug子目录

3. 用vi编辑以下两个文件并编译和运行,截图(30分)

3.1. 编辑reverse.h文件:
        输入命令$ vi reverse.h创建reverse.h文件,编辑完成后按“esc”退出,并输入“:wq”用于保存代码。

图:reverse.h文件的创建与编辑

3.2. 编辑reverse.c文件

        输入命令$ vi reverse.c创建reverse.c文件,并写入要求内容:

图:编辑reverse.c文件

        接着退出编辑模式并保存。

​​​​​​​3.3. 编译并修改代码:

        输入指令 $ gcc -Wall reverse.c -o reverse reverse.c进行编译,接着出现报错:

图:编译报错

        接下来对错误进行分析与解决:

      ①strlen()函数位于<string.h>头文件中,而代码中并没有包含,需要在头文件部分加上#include <string.h>

       ②在使用scanf()函数时,不需要为str添加&,因为str已经是一个数组,它本身就是一个地址。去掉&符号即可。

        ③原先给出的指令有误,应该是由于符号错误引起的。

        将以上错误修改,再次进行编译,结果如下:

图:第二次编译结果

        警告来自于没有返回值的int型函数,加上语句return 0;即可。

        再次进行编译,发现没有报错或者警告信息,说明此阶段任务完成。

图:编译成功

​​​​​​​3.4. 运行程序:

        输入命令$./reverse运行编译完成的代码:

图:运行结果

4. ​​​​​​​​​​​​​​调试并修正reverse.c文件。(30分)

4.1. 编译时加入调试信息

        使用命令:gcc -g reverse.c -o reverse1进行编译,同时生成调试信息并且输出一个名为reverse1的可执行文件。

​​​​​​​4.2. 启用GDB调试

        输入命令:gdb ./reverse1

图:调试信息

​​​​​​​4.3. 键入list,查看源代码并根据行号、函数名设置断点:

图:查看代码以及对应行号

 

图:设置断点并查看断点信息

​​​​​​​4.4. 观察变量值,并作分析,推测错误:

图:调试过程(前半)

图:调试过程(后半)

        由图可知,在运行第15行语句时,变量str出现了错误的改变,语句*str + len - i – 1并没有正确表示目的位置的字符,而是表示了错误位置的字符经过加减后得到的字符,应当修改为(*str + len - i – 1),同理,14行的*str + i应当修改为(*str + i)

​​​​​​​4.5. 修正程序并运行:

        根据以上分析,重新打开代码文件,对相应部分作出修改,结果如下:


图:修改后的代码

        修改后重新进行编译与运行,可见结果正确:

图:运行结果

四、实验结果

       运行修改完成后的代码,得到的正确结果如图所示:

图:运行结果

五、实验总结与体会

       实验总结:本实验首先完成了VMware软件的下载与安装,在软件中配置了ubuntu虚拟机环境,并在此Linux虚拟机环境中配置了gcc编译器。

       在完成以上基础环境的配置后,完成了新建账户、新建目录、新建代码文件并对其进行编译的操作。接着对编译结果进行改错、实现代码的运行。然后进行了断点的设置、代码的调试与修改,并最终得到了正确的结果。

       实验体会:本次实验是第一次使用Linux环境,期间遇到了不少环境操作上的问题;在代码相关操作上与熟悉的Windows环境也有诸多不同。经过了查阅资料与相关知识的学习,我对Linux环境有了一定的了解,学会了初步的操作,并能完成此环境下c++的编程任务,解决了上述问题。

尾注

        本实验是本课程的第一次实验,难度较低。

        如有疑问欢迎讨论,如有好的建议与意见欢迎提出,如有发现错误则恳请指正!

附:虚拟机常用指令

实验一:/*首先需要进入root:su直接输入密码(不会有显示)进入gdbdebug目录:cd gdbdebug打开reverse.h:vi reverse.h打开reverse.c:vi reverse.c编译reverse.c(*):gcc -Wall reverse.c -o reverse运行:./reverse编译时加入调试信息:gcc -g reverse.c -o reverse1启用GDB调试:gdb ./reverse1调试语句:设置断点:break 行号删除断点:delete行号删除所有断点:delete查看所有断点信息:info break开始运行:run或r继续运行:continue或c结束运行:quit或q(*)解释gcc -Wall reverse.c -o reverse :-Wall:意为"开启所有警告"。reverse.c:是要编译文件。-o reverse:-o是指定输出文件的选项,reverse是编译后生成的可执行文件名。*/

​​​​​​​

http://www.hkea.cn/news/567115/

相关文章:

  • 丰县住房与城乡建设部网站太原网站制作优化seo公司
  • 微信如何做微商城网站建设手机网站智能建站
  • 网站尾部分页数字怎么做推广app大全
  • 建筑设计软件有哪些优化网站建设
  • 网站开发 word文件预览医疗器械龙头股
  • 电子商务网站建设花费南宁百度seo排名价格
  • 做公司网站要注意哪些问题真正免费建站网站
  • 在线服务器代理杭州seo网络公司
  • wordpress邮件订阅seo技术外包
  • 深圳营销网站建站公司搜索引擎关键词的工具
  • 做网站如何网站考虑优化游戏推广员是诈骗吗
  • 公众号做视频网站吗关键词排名怎么做上首页
  • 重庆做网站价格优化软件下载
  • 如何做网站镜像今日最火的新闻
  • 水果网站开发所需的成本市场营销实际案例
  • 无锡市新吴区住房和建设交通局网站西安百度关键词包年
  • 网站平台方案设计seo上首页
  • 郑州做网站的联系方式搜狗友链交换
  • 一般建设一个网站多少钱怎么接广告赚钱
  • 计算机专业网站开发方向销售推广方案
  • 上海网站建设公司排名西安百度公司
  • 中国网网址是多少网站推广优化教程
  • 关于加强机关网站建设运营培训
  • dw做的网站怎么让别人看到如何建立一个网站
  • 保险网站建设优缺点seo代码优化步骤
  • 如何快速建网站百度电脑版入口
  • 山东省建设工程信息网站最近最新的新闻
  • 免费网站建设方案锦绣大地seo官网
  • 电子商务的网站建设牛排seo系统
  • 资源收费网站怎么做网站快速优化排名官网