实验2-C程序编译、调试和运行工具的使用

C程序编译、调试和运行工具的使用

一、安装所需要的包

sudo apt-get update
sudo apt-get install libc6-dev-i386
sudo apt-get install gdb
sudo apt-get install build-essential

二、gcc基本命令的使用

(一)分步操作

1.预处理 .c ⇒ .i

gcc -E hello.c -o hello.i

2.编译 .i ⇒ .s

gcc -S hello.i -o hello.s

3.汇编 .s ⇒ .o

gcc -c hello.s -o hello.o

4.链接 .o ⇒ 可执行文件

gcc hello.o -o hello

(二)一步完成

gcc hello.c -o hello

(三)命令参数

gcc -m32 -O0 -g -no-pie hello.c -o hello
-m32 生成x86-32的指令
-O0 不优化
-g 带调试信息,如果后续需要调试程序的话必须加此参数
-no-pie 关闭装载至随机地址

三、objdump 反汇编

objdump -S hello.o>hello.txt
objdump -S hello>hello.txt

四、gdb调试

对可执行文件test进行调试
1.启动gdb调试工具 gdb test
2.在主函数入口处设置断点break main
3.启动并运行已加载的程序runr
4.查看所有寄存器内容i r
5.查看某个寄存器(以eip为例)内容i r eip
6.查看某些寄存器内容i r esp ebp eax
7.向下继续执行一条机器指令si
8.执行一条c语句s
9.退出调试quitq

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值