Linux下C语言程序的编译与调试实验报告.doc

上传人:灯火****19 文档编号:135076162 上传时间:2020-06-11 格式:DOC 页数:7 大小:98.78KB
返回 下载 相关 举报
Linux下C语言程序的编译与调试实验报告.doc_第1页
第1页 / 共7页
Linux下C语言程序的编译与调试实验报告.doc_第2页
第2页 / 共7页
Linux下C语言程序的编译与调试实验报告.doc_第3页
第3页 / 共7页
Linux下C语言程序的编译与调试实验报告.doc_第4页
第4页 / 共7页
Linux下C语言程序的编译与调试实验报告.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Linux下C语言程序的编译与调试实验报告.doc》由会员分享,可在线阅读,更多相关《Linux下C语言程序的编译与调试实验报告.doc(7页珍藏版)》请在金锄头文库上搜索。

1、Linux操作系统基础作业Linux下C语言程序的编译与调试王斯宇11211116Linux下C语言程序的编译调试实验 学 院: 电子信息工程学院 专 业: 通信工程 姓 名: 王斯宇 学 号: 11211116 指导老师: 周围老师 完成时间: 2013年6月3日 一、实验目的1. 熟悉Linux下C语言编译调试环境。2. 学会使用gcc编译C程序。3. 学会使用gdb调试C程序。二、实验内容1. 在Linux下,编写程序factorize.c,功能如下:输入一个int型整数,输出其因式分解结果。2. 编译运行,生成可执行文件。3. 用gdb调试该程序,找到错误并修改。三、实验软件环境GCC

2、GCC(GNU Compiler Collection,GNU编译器集合)是一套由GNU工程开发的支持多种编程语言的编译器。GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布。GCC是大多数类Unix操作系统(如Linux、BSD、Mac OS X等)的标准的编译器,GCC同样适用于微软的Windows。GCC支持多种计算机体系芯片,如x86、ARM,并已移植到其他多种硬件平台。GCC原名为GNU C编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,并支持处理C+。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Object

3、ive-C、Java、Ada、Go等。GDBGDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)。3、当程序被停住时,可以检查此时你的程序中所发生的事。4、动态的改变你程序的执行环境。四、

4、实验步骤:1. 程序编辑在桌面环境下新建一个文件,打开文件输入代码,保存为factorize.c,然后将其复制到在/home/文档目录下。附:原程序代码#include int main(int argc, char *argv)int n,i;printf(Please enter an integer:);scanf(%d,&n);printf(%d=,n);for(i=2;i=n;i+)while(n!=i)if(n%i=0)printf(%d*,i);n=n-i;elsebreak;printf(%dn,n);return 0;2. 编译并运行用gcc命令编译程序通过后运行,输入18,

5、输出结果明显是错误的3. 调试进入gdb环境,使用gdb命令,帮助时使用help。在for循环处(第9行)设置断点,使用命令“b 9”。在printf函数处(第15行)设置断点,使用命令“b 15”。查看断点设置情况,使用命令“info b”。运行代码,使用命令“r”。单步运行代码,使用命令“n”。查看暂停点变量值,使用命令“p i”或“p n”。继续单步运行代码数次,并使用命令查看,判断i或n的值。继续程序的运行,使用命令“c”。从断点数据可以得知:程序一直处于while循环之中,i的数值一直为2,所以变量n的数值出现了问题,导致最终输出结果只有2。仔细检查代码后发现错误,原程序第16行“n

6、=n-i”应改为“n=n/i”。4. 再次编译并运行这次输出“18=2*3*3”正确,程序编写成功附:修改后的程序代码#include int main(int argc, char *argv)int n,i;printf(Please enter an integer:);scanf(%d,&n);printf(%d=,n);for(i=2;i=n;i+)while(n!=i)if(n%i=0)printf(%d*,i);n=n-i;elsebreak;printf(%dn,n);return 0;同时,可以在文件系统中看到,程序代码所在的文件夹生成了可执行文件factorize,这也是g

7、cc成功编译并能下一步运行的体现。五、实验总结通过本次实验,我了解了linux环境下进行C语言编程的基本方法,再一次感受到了ubuntu系统的简便和快捷。与windows编程需要IDE开发环境不同,linux系统本身已经良好的集成了进行C语言的基本环境,所以只需在终端输入几个简单的命令,程序即可编译并运行了。只是对于习惯了图形界面的我们来说,刚上手时的确会感到这种方法的不便之处,尤其是对于初学者来说,不知道任何gcc或者gdb的命令就根本无从下手,而这一切只能靠记忆。但是不得不承认,这种方式的效率是最高的,对系统资源的占用是最少的,可以说是最纯粹的编程,完全不会出现visual studio那样又卡又慢或者意外崩溃的情况。综上所述,linux系统环境确实更加适合C程序开发,只是这学习的过程注定是非常艰辛的。今天我只是略知皮毛,感受到更多的不是对编程技巧的掌握,而是对一种全新开发环境的认识,它的高效快捷与强大稳定让人惊喜,但愿今后我会有更多的机会接触到linux环境下编程的相关知识,以期不断学习,完善自我。 7 / 7

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

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号