2022年linux实验四 .pdf

上传人:Che****ry 文档编号:34262533 上传时间:2022-08-15 格式:PDF 页数:8 大小:688.88KB
返回 下载 相关 举报
2022年linux实验四 .pdf_第1页
第1页 / 共8页
2022年linux实验四 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年linux实验四 .pdf》由会员分享,可在线阅读,更多相关《2022年linux实验四 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、北 京 XXXX 大 学2010 学年 2011 学年第二 学期 Linux应用 实验任务书专业名称:信息管理与信息系统班级:姓名:学号:实验地点:任课教师:实验题目:实验四 gcc 和 gdb 的基本使用实验环境: Red Hat Linux 9 实验目的 :通过调试一个有问题的程序, 进一步熟练使用Vi 操作,而且熟练掌握Gcc 编译及 Gdb 的调试命令,通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力。实验内容 :Gdb调试题目:(1) 使用 Vi 编辑器,将以下代码输入到名为greet.c 的文件中。此代码的原意为输出倒序 main 函数中定义的字符串, 但结果显示没有

2、输出。 代码如下所示:(2) 使用 Gcc 编译这段代码。(3) 运行生成的可执行文件,观察运行结果。(4) 使用 Gdb 调试程序,通过设置断点、单步跟踪,一步步找出错误所在。(5) 纠正错误,更改源程序并得到正确的结果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 实验步骤:(1)在工作目录上新建文件greet.c,并用 Vi 启动: vi greet.c。(2)在 Vi 中输入以上代码。名师资料总结 - - -精品资料欢

3、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - (3)在 Vi 中保存并退出: wq。(4)用 Gcc 编译:(5)运行 greet :./greet,输出为:可见,该程序没有能够倒序输出。(6)启动 Gdb 调试:(7)查看源代码并进行调试。 使用 l查看源代码将原来有错的程序经过Gdb调试,找出问题所在, 并修改源代码, 输出正确的倒序显示字符串的结果。实验步骤中请适当截图。GNU 调试器是一个功能非常强大的工具。要了解更加详尽的知识,建议阅读GNU 调试器

4、手册。用 b 行号 命令来设置断点,发现string0没有被正确赋值。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 经过调试之后发现错误原因在于size-i,由于 i 只能增加到 size-i,这样string20的值就永远不能被赋值而保持NULL 。把 string2size-i=stringi改为 string2size-i-1=string1i修改重新编译后输出结果正确编程题目( 2 选 1) : 汉诺塔游戏。约 19

5、世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由N 个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘, 且不允许 大 盘放在 小 盘的上面。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 图的遍历。请用深度优先搜索或广度优先搜索对上图的文件系统树进行遍历。汉诺塔:1)新建 hanoi.c文件 输入代码保存2) gcc 编译 hanoi.c 为

6、 hanoi ./执行/ dirC dirA dirB my3.dat my1.dat my2.dat my1.dat 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 附上源代码:#include void move(int n,char a,char c) printf(Move disk %d from %c to %c:n,n,a,c); void hanoi(int n,char a,char b,char c) if(

7、n=1)move(n,a,c); else hanoi(n-1,a,c,b); move(n,a,c); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - hanoi(n-1,b,a,c); int main() int n; printf(input the number of disks:); scanf(%d,&n); printf(the step to moving %3d diskes:n,n); hanoi(n,a,

8、b,c); 实验中存在的问题及解决办法:1、次进行 gcc编译的时候出现了一下语法的错误如下,后经改正之后没有错误。2、在用 gdb进行调试的时候,会运用到各种命令:查看源代码 l 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 设置断点 b 行号查看设置断点情况 info b 运行代码 r 单步代码 n 继续程序的运行 c 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁