实验二 简单程序的编译、链接、调试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二简单程序的编译、链接、调试
一、实验目的
1.熟悉GNU gcc 编译器的使用方法和常用的编译选项
2.熟悉gdb 调试器的各个命令,学习如何有效的调试程序
二、实验内容
1.使用vi 编辑器编写一个简单程序,输出“hello,world!”字符串;
2.用gcc编译器编译所写的程序,练习编译器各个参数的用法;
3.用ld连接器把程序连接成可执行程序,练习连接器各个参数的用法;
4.学习用gdb调试器调试程序,练习使用断点来跟踪程序的运行,查看变量的值或地址,查看寄存器的内容,练习的调试器的各个常用命令;
三、实验指导与步骤
1. 登录Linux,在终端控制台提示符下键入vi启动编辑器(或键入startx启动X
Window,通过程序组启动vi编辑器);也可以使用Gedit 编辑器;
2. 新建一个文件,将文件保存到您的HOME目录,文件扩展名取为*.c,vi编辑器
的编辑格式将自动转换成C格式;
3. 按实验内容要求,编写源代码,将代码输入刚刚新建的文件,保存;
4. 在提示符下键入cd $HOME,看看您的主目录是什么;再键入ls 命令查看有没有
你新建的文件;
5. 在提示符下键入gcc –h,查看gcc编译器的帮助信息;
6. 键入gcc -c –Wall hello.c;如果编译不通过,要理解这些错误,并改正过来;警告
一般无关紧要,但也要重视,警告也可能造成运行时错误;常见编译错误一般有:函数找不到原型,符号不能解释(可能没有定义或没有包含必要的头文件),语法错误:“””,“’”,“}”“)”,“;”等边界符不匹配,函数调用的参数类型不匹配或参数个数不对等等;
6. 如果编译成功,再键入ls命令查看生成了什么文件;
7. 在提示符下键入ld –h,查看ld 连接器的帮助信息。
目标文件(*.o) 一般不用单独
连接,所以ld 连接器一般也不单独调用。
如果源代码没有任何错误,gcc不带任何编译选项,就可以把源代码编译、连接成可执行程序;
8. 键入gcc –g hello.c –o hello_g,-g选项保证编译后的程序中包含了大量标准调试信
息,以方便调试过程;-o选项指定了输出文件名,如果不指定文件名,默认的输出文件名就是a.out。
9. 键入gdb hello_g,,调试你的程序。
主要练习查看变量或寄存器的值,设置断点、
单步跟踪程序运行。
四、实验报告要求
1.实验目的
2.实验内容
gcc编译器、ld连接器的常用选项及基本功能;练习单独调用ld连接器;gdb调试器的基本命令及功能。
3.实验详细步骤
画出从编辑源代码到调试成功的整个过程图;记录自己实际完成的步骤,实验过程中所碰到的难题以及你解决问题的步骤和方法;记录编译程序时编译器报告的错误、解释错误意义和改正方法;记录调试过程调试器报告的错误、解释错误意义和
改正方法;记录连接程序时的信息;4.实验技巧和心得体会。