linux 单步启动_Linux GDB调试--启动程序进程调试:GDB 程序名

调试准备

1、简单的累加

1 #include

2

3 int main (void)4 {5 int count = 0;6 inti;7 for ( i = 0; i < 10; i++){8 count +=i;9 }10 printf("count = %d \n", count);11 return 0;12 }

2、makefile

1 cc =gcc2 target =main3 obj =add.o4 $(target):$(obj)5 $(cc) -g $(obj) -Wall -o $(target) -lpthread -lrt6 add.o : add.c7 $(cc) -c add.c -g -lpthread8 .PHONY:clean9 $(RM) *.o $(target)

注意:Makefile中只能出现tab开头,不能是四个空格,GDB调试编译必须带 -g 。

3、编译过程

调试过程

1、进入gdb调试

gdb 编译生成的可执行文件

2、查看代码

list或者l(l 等价于 list)

直接回车表示执行上一条命令

3、设置断点

a.直接根据函数名设置断点

如break main或b mian (b 等价于 break)

b.根据行数设置断点

如b 8

c.根据文件名和行数设置断点

如 break add.c:8 在add.c中第8行设置断点

查看断点 info breakpoint 或 i b(i 等价于info)

4、开始

开始执行

start命令

一步步执行:

next或n(n等价于next)

后可直接回车

打印参数值

print count

前面表示打印次数

p/[] 变量

x 按十六进制格式显示变量。

d 按十进制格式显示变量。

u 按十六进制格式显示无符号整型。

o 按八进制格式显示变量。

t 按二进制格式显示变量。

a 按十六进制格式显示变量。

c 按字符格式显示变量。

f 按浮点数格式显示变量。

查看内存

查看变量地址和值

查看内存

x/

查看机器码

display/i $pc

$pc是GDB的环境变量,表示着指令的地址,/i则表示输出格式为机器指令码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值