gdb 基本命令总结

一般的,GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的-g参数可以做到这一点。

>cc -g hello.c -o hello

>g++ -g hello.cpp -o hello


1.break func 设置断点,在函数func()的入口处

2.info break 查看断点信息

3.p i  打印变量i的值,p是print命令的缩写

4.bt 查看函数堆栈

5.finish 退出函数

6.continue/c 碰到断点后继续运行

7.set args  可以指定程序运行时的参数。

8.show args 命令查看设置好的运行参数

9.show paths 查看程序的运行环境

10.set env varname [=value] 设置环境变量


一、设置断点

1.break filename:linenum

2.break filename:function

3.break *address

4.break ……if

break if i=100

5.info breakpoints


二、设置捕捉点 catchpoint

catch


三、维护停止点

delete、clear、disable、enable

1.clear 清除所有的已定义的停止点

2.delete [breakpoints] [range…] 删除指定的断点

3.disable [breakpoints] [range…]

4.enable [breakpoints] [range…]


四、为停止点设定运行命令

用command命令来设置停止点的运行命令

break foo if x>0

commands

printf "x is %d\n",x

continue

end


五。恢复程序运行和单步调试

1.step 单步跟踪,如果有函数调用,会进入该函数

2.next 单步跟踪,如果有函数调用,不会进入该函数

3.finish 运行程序,知道当前函数完成返回

4.until/u 运行程序知道推出循环体


六、数组

1.查看一段连续的内存地址空间的值。使用@

int *array = (int *) malloc (len*sizeof(int));

print *array@len


2.输出格式

x 十六进制格式

d 十进制

u 十六进制无符号

o 八进制

t 二进制

a 十六进制

c 字符格式

f 浮点数

print/a i


七、查看内存

examine/x

n,f,u


八、GDB环境变量$

set $foo= *object_ptr

show convenience

set $i=0

print bar[$i++]->contents


九、查看寄存器

1.info registers

2.info all-registers

3.info registers



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值