- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 PAGE \* Arabic 4 页
实验题目: 实验三 GNU下编译器和调试器的使用初步
实验环境: Linux环境
实验目的:
通过调试一个有问题的程序,进一步熟练使用 Vi 操作,而且熟练掌握 Gcc 编译及 Gdb 的调试命令,通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力。
实验内容:
GNU GCC:
编译单个源文件
#include stdio.h
#include stdlib.h
int main(int argc, char **argv)
{ printf(“Hello world! \n”);
exit(0);
}
简单编译两个源文件
#include stdio.h
void goodbye_world(void);
{ printf(“Goodbye, world! \n”);
}
使用gcc的“-c”标记来编译支持库代码:
# gcc -c message.c
这一过程的输出结果是一个名为message.o的文件,它包含适合连接到一个较大程序的已编译目标代码。
创建一个简单的示例程序,它包含一个调用上个程序里的goodbye_world的main函数。
#include stdlib.h
void goodbye_world(void);
int main(int argc, char **argv)
{ goodbye_world();
exit(0);
}
使用gcc编译这个程序:
# gcc -c main.c
现在有了两个目标文件:message.o 和 main.o。它们包含能够被 Linux 执行的目标代码。要从这个目标代码创建Linux可执行程序,需要再一次调用gcc来执行连接阶段的工作:
使用外部函数库
GCC常常与包含标准例程的外部软件库结合使用,几乎每一个 Linux 应用程序都依赖于由 GNU C 函数库 GLIBC。
// 请编写代码计算sin30度+ sin60度+sin90度,并完成编译,执行
提示:头文件的使用且GCC编译时使用数学库参数。函数库位置随系统的不同而不同,但它一般会位于目录/lib或/usr/lib中,在这些目录中还有数以百计的其他必需的系统函数库。
GNU GDB:
使用 Vi 编辑器,将以下代码输入到名为 greet.c 的文件中。此代码的原意为输出倒序main函数中定义的字符串,但结果显示没有输出。代码如下所示:
使用 Gcc 编译这段代码。
运行生成的可执行文件,观察运行结果。
使用 Gdb 调试程序,通过设置断点、单步跟踪,一步步找出错误所在。
纠正错误,更改源程序并得到正确的结果。
实验步骤:
在工作目录上新建文件 greet.c,并用 Vi 启动:vi greet.c。
在 Vi 中输入以上代码。
在 Vi 中保存并退出:wq。
用 Gcc 编译:
运行 greet:./greet,输出为:
可见,该程序没有能够倒序输出。
启动 Gdb 调试:
查看源代码并进行调试。
将原来有错的程序经过Gdb调试,找出问题所在,并修改源代码,输出正确的倒序显示字符串的结果。实验步骤中请适当截图。GNU调试器是一个功能非常强大的工具。要了解更加详尽的知识,建议阅读GNU调试器手册。
LINUX环境下的编程实现:
/
/
dirC
dirA
dirB
my3.dat
my1.dat
my2.dat
my1.dat
请用深度优先搜索或广度优先搜索对上图的文件系统树进行遍历。
(选作)在虚拟机的LINUX下配置集成开发环境(IDE),如Eclipse,并尝试进行上述题目。
思考题:
NFS(Network File System)服务是什么?
SAMBA服务是什么?
实验中存在的问题及解决办法:
您可能关注的文档
- 石油计量员培训考核理论试题及答案.doc
- 石油焦用途及延迟焦化装置工艺路线的选择.docx
- 石油天然气长输管道建设施工管理方案.doc
- 石柱县年春小学六年级期末学业质量检测预览版.doc
- 时、分、秒千米和吨练习.doc
- 时代广场项目监理细则.doc
- 时代广场项目可行性研究报告.doc
- 时间管理答案.docx
- 识别塑料制品标记.doc
- 实测实量监理实施细则.doc
- 2025年金肯职业技术学院单招职业适应性测试题库带答案.docx
- 2025年钦州幼儿师范高等专科学校单招综合素质考试题库完美版.docx
- 2025年钟山职业技术学院单招职业适应性考试题库参考答案.docx
- 2025年金华职业技术学院单招职业技能测试题库附答案.docx
- 2025年闽南理工学院单招职业技能测试题库审定版.docx
- 2025年闽南理工学院单招综合素质考试题库审定版.docx
- 2025年闽南理工学院单招职业倾向性考试题库汇编.docx
- 2025年闽南理工学院单招职业倾向性考试题库推荐.docx
- 2025年闽北职业技术学院单招综合素质考试题库1套.docx
- 2025年长沙轨道交通职业学院单招职业技能考试题库一套.docx
文档评论(0)