浙江大学城市学院实验报告
课程名称           计算机系统原理实验linux下gcc编译的四个步骤           
实验项目名称     实验二 hello可执行程序的生成以及GCCGDB使用                 
学生姓名       专业班级       学号        
实验成绩         指导老师(签名               日期              
注意:
务请保存好各自的源代码,已备后用。
请把作业同时上传到BB平台和FTP
文件名为:学号_姓名_日期_实验几,如30801001_姓名_20100305_实验01
ftp://10.66.28.222:2007 
一、实验目的:
1.    熟悉Linux操作系统环境;
2.    通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。
3    掌握GCCLinux环境下编写C语言程序命令和步骤;
4.    掌握GDB调试C语言程序命令和步骤。
二、实验内容:
1、使用文本编辑器编写hello源代码;
2、使用GCC编译器,逐步编译hello程序,观察中间文件。
3、使用文本编辑器编写tst.c源程序;
4、使用GDB调试tst程序,掌握常用调试命令。
三、实验步骤:
1、 使用文本编辑器编写hello程序源码,截图展示。
2、 根据实验讲义,使用不同的命令选项,输出hello编译过程中间文件,截图展示。
3、 使用Editplus或者其他合适的软件,查看hello.i,hello.s,hello.o hello文件内容,截图展示。
4、 使用文本编辑器编写实验讲义中给出的tst.c源码,截图展示。
5、 根据实验讲义步骤,学习逐步调试tst程序,掌握GDB常用命令,截图展示。
6、 结合实验操作以及GDBhelp,了解以下命令的作用。
gdb
启动gdb
list
列出函数
run
运行程序
break
设置断点
print
强制调用函数
continue
继续运行程序直到下一个断点
next
执行下一步
step
单步进入
info
查看程序信息
finish
退出当前函数
quit
退出gdb
help
帮助指令
四、思考题(请根据自己的理解,能回答多少就答多少)
1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。
提示:从多个方面(如ISAOS和编译器)来分析。
不相同。因为对于不同的机器其硬件组成不同,例如:CPU。所以同一个源程在不同机器上生成的可执行目标代码是不同的。
(2)你能在可执行目标文件中出函数printf ()对应的机器代码段吗?能的话,请标示出来。
不能。因为源程序中的printf函数在可执行文件中已转换为机器语言。被翻译的机器语言中有printf函数,但是不知道是从哪一段开始翻译的。
(3)为什么源程序文件的内容和可执行目标文件的内容完全不同?
因为源程序文件时可以直接编写的。而可执行文件是被机器语言翻译过后的执行内容。所以内容不同。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。