预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验报告 实验名称:LinuxC编程和程序调试 专业:计算机科学与技术 班级:计科091 姓名:郝朋 日期:2012-09-10 实验目的 熟悉Linux下gcc的各种编译参数,熟悉gdb调试工具的使用方法,了解Linuxmake工具盒Makefile文件的编写方法。 实验内容 编写一个程序,求1!+2!+3!++n!,要求如下: 将main函数、求和、求阶乘分解为三个源文件。 将所有函数的声明都集中到一个头文件中,在三个源文件中引用。 使用gcc编译: 三个文件直接一起编译; 将求和与求阶乘做成静态库再连接; 将求和与求阶乘做成动态库再连接; 编写makefile,使用make命令编译; 使用gdb跟踪调试程序;实验步骤 使用gdb跟踪调试程序;实验步骤 Gcc gcc-cjc.c-ojc.o gcc-ch.c-ojc.o gcc-cmain.c-omain.o gcc*.c-omain 输入>./main >100 gdb 此处填写gdb调试的命令和调试过程 首先要把调试信息加进去开始调试之前,必须用程序中的调试信息编译要调试的程序。这样,gdb才能够调试所使用的变量、代码行和函数。如果要进行编译,请在gcc(或g++)下使用额外的'-g'选项来编译程序: 如:gcc-gmain.c-omain 运行DDB >gdbmain或者进入gdb>filemain 然后>run就可以启动程序 列出源程序>list1 设置断点break7//第七行设置断点 也可以在某个函数设置断点如:breakresult 查看断点信息infobreak 打印变量num的值 step运行一步,会跳入函数里面 Next运行一行,不会跳入函数里面 Until运行到某一行 Breakjc.c:jc()在jc.c文件的jc()函数入口处停下来 删除断点deletebreakpoints22 条件断点breakfooifr==1break<args>if<cond> make工具 main:h.ojc.omain.o gcch.ojc.omain.o-omain h.o:h.cjc.o gcc-ch.c jc.o:jc.c gcc-cjc.c main.o:h.omain.c gcc-cmain.c clean: 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"my.h" doublejc(intn) { doubler=1; inti; for(i=1;i<=n;i++) r=i*r; returnr; } //main.c #include<stdio.h> #include"my.h" voidmain() { intnum=0,i=0; printf("pleaseinputanumber(0--170):"); scanf("%d",&num); printf("\ntheresultis:%.0lf\n",result(num)); } //my.h doubleresult(intn); doublejc(intn);