深入理解计算机系统实验一

实验课题

安装Linux环境,并进行简单程序的编译和GDB调试

实验目的

本实验为课程预备实验,要求成功安装linux基本环境,并进行简单程序的编译和GDB调试,从而为后续课程实验搭建基础运行平台。

实验环境

个人电脑、linux发行版本

实验内容

第一步,在你所使用的电脑平台上安装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 把代码导出文件

实验参考资料

至此实验结束,如有问题可自行CSDN

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值