欢迎来到天天文库
浏览记录
ID:10015018
大小:1.12 MB
页数:9页
时间:2018-05-20
《linux c编程和程序调试》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告实验名称:LinuxC编程和程序调试专业:计算机科学与技术班级:计科091姓名:郝朋日期:2012-09-10实验目的熟悉Linux下gcc的各种编译参数,熟悉gdb调试工具的使用方法,了解Linuxmake工具盒Makefile文件的编写方法。一、实验内容编写一个程序,求1!+2!+3!++n!,要求如下:将main函数、求和、求阶乘分解为三个源文件。将所有函数的声明都集中到一个头文件中,在三个源文件中引用。使用gcc编译:三个文件直接一起编译;将求和与求阶乘做成静态库再连接;将求和与求阶乘做成动态库再连接;编写m
2、akefile,使用make命令编译;使用gdb跟踪调试程序;实验步骤二、使用gdb跟踪调试程序;实验步骤1、Gccgcc-cjc.c-ojc.ogcc-ch.c-ojc.ogcc-cmain.c-omain.ogcc*.c-omain输入>./main>1001、gdb此处填写gdb调试的命令和调试过程首先要把调试信息加进去开始调试之前,必须用程序中的调试信息编译要调试的程序。这样,gdb才能够调试所使用的变量、代码行和函数。如果要进行编译,请在gcc(或g++)下使用额外的'-g'选项来编译程序:如:gcc-gmain.
3、c-omain运行DDB>gdbmain或者进入gdb>filemain然后>run就可以启动程序列出源程序>list1设置断点break7//第七行设置断点也可以在某个函数设置断点如:breakresult查看断点信息infobreak打印变量num的值step运行一步,会跳入函数里面Next运行一行,不会跳入函数里面Until运行到某一行Breakjc.c:jc()在jc.c文件的jc()函数入口处停下来删除断点deletebreakpoints22条件断点breakfooifr==1breakif4、>1、make工具main:h.ojc.omain.ogcch.ojc.omain.o-omainh.o:h.cjc.ogcc-ch.cjc.o:jc.cgcc-cjc.cmain.o:h.omain.cgcc-cmain.cclean:rm-f*.omain四、程序附件此处填写程序代码//h.c求合#include"my.h"doubleresult(intn){doublesum=0;inti=0;for(i=1;i<=n;i++){sum+=jc(i);}returnsum;}//jc.c求阶层n!#include"m5、y.h"doublejc(intn){doubler=1;inti;for(i=1;i<=n;i++)r=i*r;returnr;}//main.c#include#include"my.h"voidmain(){intnum=0,i=0;printf("pleaseinputanumber(0--170):");scanf("%d",&num);printf("theresultis:%.0lf",result(num));}//my.hdoubleresult(intn);doublejc(in6、tn);
4、>1、make工具main:h.ojc.omain.ogcch.ojc.omain.o-omainh.o:h.cjc.ogcc-ch.cjc.o:jc.cgcc-cjc.cmain.o:h.omain.cgcc-cmain.cclean:rm-f*.omain四、程序附件此处填写程序代码//h.c求合#include"my.h"doubleresult(intn){doublesum=0;inti=0;for(i=1;i<=n;i++){sum+=jc(i);}returnsum;}//jc.c求阶层n!#include"m
5、y.h"doublejc(intn){doubler=1;inti;for(i=1;i<=n;i++)r=i*r;returnr;}//main.c#include#include"my.h"voidmain(){intnum=0,i=0;printf("pleaseinputanumber(0--170):");scanf("%d",&num);printf("theresultis:%.0lf",result(num));}//my.hdoubleresult(intn);doublejc(in
6、tn);
此文档下载收益归作者所有