




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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调试该程序,找到错误并修改。三、实验软件环境GCCGCC(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、Objective-C、Java、Ada、Go等。GDBGDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)。3、当程序被停住时,可以检查此时你的程序中所发生的事。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,输出结果明显是错误的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=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,这也是gcc成功编译并能下一步运行的体现。五、实验总结通过本次实验,我了解了linux环境下进行C语言编程的基本方法,再一次感受到了ubuntu系统的简便和快捷。与windows编程需要IDE开发环境不同,linux系统本身已经良好的集成了进行C语言的基本环境,所以只需在终端输入几个简单的命令,程序即可编译并运行了。只是对于习惯了图形界面的我们来说,刚上手时的确会感到这种方法的不便之处,尤其是对于初学者来说,不知道任何gcc或者gdb的命令就根本无从下手,而这一切只能靠记忆。但是不得不承认,这种方式的效率是最高的,对系统资源的占用是最少的,可以说是最纯粹的编程,完全不会出现visual studio那样又卡又慢或者意外崩溃的情况。综上所述,linux系统环境确实更加适合C程序开发,只是这学习的过程注定是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)电影发行协议书
- (2025年标准)电梯资质使用协议书
- 2025年度个人工作计划格式
- 2025年甘肃省平凉市静宁县西岭幼儿园教育集团总园招聘考试备考试题及答案解析
- 2025广东江门鹤山市招聘教师37人(编制)考试模拟试题及答案解析
- 2025山东青岛大学附属医院住院医师规范化培训学员二批次招收笔试备考试题及答案解析
- (2025年标准)弹性离校协议书
- 2025山西阳泉平定县从社区专职网格员中选聘社区专职工作人员考试备考题库及答案解析
- 2025安徽中医药大学第二批次招聘专业技术人员笔试参考题库附答案解析
- 2025山东淄博市临淄区招聘城镇公益性岗位人员303人笔试参考题库附答案解析
- 校园基孔肯雅热防控措施课件
- (2025年标准)离职手协议书
- 2025年团场人员考试题库
- 班组质量管理
- 2025年四川省建筑施工企业安管人员考试(企业主要负责人·A类)历年参考题库含答案详解(5卷)
- 实战能力评估模型-洞察及研究
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- 心脏起搏器植入指南
- 干部任免审批表(全国干部人事档案专项审核专用)
- 2023年生态环境综合行政执法考试参考题库(400题)
- 乡村全科执业助理医师考试试题
评论
0/150
提交评论