北京 xx 大学
2014学年—2015学年第 1 学期 linux应用实验报告书。
实验题目: 实验三 gnu下编译器和调试器的使用初步
实验环境: linux环境。
实验目的:
通过调试一个有问题的程序,进一步熟练使用 vi 操作,而且熟练掌握 gcc 编译及 gdb 的调试命令,通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力。
实验内容:gnu gcc:
编译单个源文件。
#include <>
#include <>
int main(int argc, char **ar**)
简单编译两个源文件。
#include <>
void goodbye_world(void);
使用gcc的“-c”标记来编译支持库**:
# gcc -c
这一过程的输出结果是一个名为的文件,它包含适合连接到一个较大程序的已编译目标**。
创建一个简单的示例程序,它包含一个调用上个程序里的goodbye_world的main函数。
#include <>
void goodbye_world(void);
int main(int argc, char **ar**)
使用gcc编译这个程序:
# gcc -c
现在有了两个目标文件: 和 它们包含能够被 linux 执行的目标**。要从这个目标**创建linux可执行程序,需要再一次调用gcc来执行连接阶段的工作:
使用外部函数库。
gcc常常与包含标准例程的外部软件库结合使用,几乎每一个 linux 应用程序都依赖于由 gnu c 函数库 glibc。
/ 请编写**计算sin30度+ sin60度+sin90度,并完成编译,执行。
提示:头文件的使用且gcc编译时使用数学库参数。函数库位置随系统的不同而不同,但它一般会位于目录/lib或/usr/lib中,在这些目录中还有数以百计的其他必需的系统函数库。
gnu gdb:
1) 使用 vi 编辑器,将以下**输入到名为 的文件中。此**的原意为输出倒序main函数中定义的字符串,但结果显示没有输出。**如下所示:
2) 使用 gcc 编译这段**。
3) 运行生成的可执行文件,观察运行结果。
4) 使用 gdb 调试程序,通过设置断点、单步跟踪,一步步找出错误所在。
5) 纠正错误,更改源程序并得到正确的结果。
实验步骤:1) 在工作目录上新建文件 并用 vi 启动:vi
2) 在 vi 中输入以上**。
3) 在 vi 中保存并退出:wq。
4) 用 gcc 编译:
5) 运行 greet:./greet,输出为:
可见,该程序没有能够倒序输出。
6) 启动 gdb 调试:
7) 查看源**并进行调试。
将原来有错的程序经过gdb调试,找出问题所在,并修改源**,输出正确的倒序显示字符串的结果。实验步骤中请适当截图。gnu调试器是一个功能非常强大的工具。
要了解更加详尽的知识,建议阅读gnu调试器手册。
linux环境下的编程实现:
请用深度优先搜索或广度优先搜索对上图的文件系统树进行遍历。
选作)在虚拟机的linux下配置集成开发环境(ide),如eclipse,并尝试进行上述题目。
思考题:nfs(network file system)服务是什么?
samba服务是什么?
实验中存在的问题及解决办法:
在实验时,在用gdb进行调试的时候,如何设置断点的命令不熟悉,通过上网查询得出。
实验1Linux入门
实验类型 验证性实验。1 了解linux运行环境。2 熟悉linux的常用基本命令。3 熟悉和掌握linux下常用编辑工具vi。1 登录linux。2 熟悉linux的常用基本命令如ls who pwd ps等。3 通过windows操作系统中的ftp程序,练习windows和linux之间的文件交...
实验1Linux入门
实验类型 验证性实验。1 了解linux运行环境。2 熟悉linux的常用基本命令。3 熟悉和掌握linux下常用编辑工具vi。1 登录linux。2 熟悉linux的常用基本命令如ls who pwd ps等。3 通过windows操作系统中的ftp程序,练习windows和linux之间的文件交...
实验1Linux入门
实验类型 验证性实验。1.熟悉linux环境。2.熟悉linux的常用命令。3.掌握在linux下运行一个简单c程序。4.掌握linux与windows之间文件共享。1.linux的登陆。实验环境 虚拟机 redhat 9.0 图形界面 用户名 root 密码 123456 2.在操作命令前,新建一...