实验三 GNU下编译器和调试器的使用初步.docVIP

实验三 GNU下编译器和调试器的使用初步.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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服务是什么? 实验中存在的问题及解决办法:

文档评论(0)

ccccccxx + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体临沂冉通信息技术有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371300MA9576790T

1亿VIP精品文档

相关文档