实验课题
安装Linux环境,并进行简单程序的编译和GDB调试
实验目的
本实验为课程预备实验,要求成功安装linux基本环境,并进行简单程序的编译和GDB调试,从而为后续课程实验搭建基础运行平台。
实验环境
个人电脑、linux发行版本
实验内容
第一步,在你所使用的电脑平台上安装linux系统与环境;
第二步,成功在linux系统中使用gcc完成简单c语言的编译和执行;
安装好后建议不要急着编写程序,可以先把VMtools工具安装好,这对你以后使用虚拟机有很大的用处,这个工具可以让你把主机的文件拖拽到虚拟机。
此处为VMtools安装教程
当然你不安装vmtools对本实验没有任何影响。
完成虚拟机安装后编写C语言主要三种办法,这里主要推荐第三种,但是前两种是虚拟机自带的功能。
第一种,在终端使用vi+文件名指令:例如vi main.c 就会出现如下界面:
此时进入的是vi指令的指令模式,按 i 进入编辑模式,便可以编写C代码了。
写好后按Esc键重新进入指令模式,按 :wq(有冒号),保存退出。这里是vi的一般使用办法,进阶用法请自行学习(博主一般不会用,只是有这种写代码的办法)。
第二种办法:
使用指令 gedit+文件名,例如: gedit main.c
gedit是一个文本编辑器,使用这个指令可以编辑文件,直接打开的编辑器里面写代码即可。很简单,也不赘述。
第三种办法:也是我一般使用的办法
直接使用主机的代码编写软件,例如dev和codeblocks写好代码后,直接把源文件拖拽到虚拟机即可,这个办法比较实用,但是要安装vmtools。
写好代码后编译源代码:(分步执行)
gcc-Ehelloworld.c helloworld.i //预处理
gcc-Shelloworld.ihelloworld.s //汇编文件
gcc-chelloworld.shelloworld.o //二进制文件
gcchelloworld.o -o helloworld //链接过程
./helloworld //运行
当然也可以直接编译一步到位:
gcc -o -g main.c helloworld.out//-g是加入调试信息,不然不能调试
./helloworld //运行
第三步,使用GDB进行程序基本的程序调试和反汇编。
gdb-q +可执行文件名(也就是你完全编译可执行的文件)开始调试
gdb b 4:第四行设置断点
gdb r :程序运行
前面三行是必要的指令
gdb p $eax, p/x $eax:查看寄存器的值
gdbx/4bx:查看地址的值
gdb n:运行下一行
gdb info reg :查看寄存器内容
gdb q 退出
任何查看反汇编文件:使用objdump -d 文件名
便可以查看该文件的汇编代码
也可使用objdump -d 文件名 >daima.txt
把代码导出文件
实验参考资料
至此实验结束,如有问题可自行优快云