gdb调试的简单操作

                                gdb调试工具

对于一个程序可以生成:

release版本:属于发行版本,用于用户。 不能调试程序。

debug版本:属于调试版本,用于程序员。 可以调试程序。

gcc默认生成的是release版本的可执行文件,如果想要生成debug版本,需要加一个选项 -g。

进入 gdb调试: gdb + debug版本文件。

 

l  显示main函数所在文件的代码

list filename:line   显示filename文件line行的代码

b 行号     给指定的行添加一个断点 (向上搜索 第一个行号就添加行号)

b函数名    给指定函数的有效第一行添加一个断点

info b       断点信息

断点号     类型           

Num(标识符) 断点的唯一标识符,用来记录和区别每个断点

Type(类型) 该字段指出当前断点是属于:断点、监视点还是捕获点

Disp(部署) 每个断点都有自己的一个部署(有3种可能的状态:保持-keep,删除-del,禁用-dis)

Enb(启用状态) 说明当前的该断点是 启用 还是禁用状态

Address(地址) 这是内存中设置断点的位置

What(位置) 该字段描述了当前该断点所处的文件名的行号位置信息

disable(enable) 断点号    使得断点无效(有效)

d 断点号    删除断点

调试过程:

r      开始执行,直接执行到运行到第一个断点处

n      单步执行

s      逐语句(可以进入函数)

finish  跳出函数

c       继续执行,直接执行到下一个断点处(r)

q      退出调试

 

查看变量的值:

p  valname       显示p的值 可以 & * 操作

p  表达式        表达式的值(方法也可以)

display valname    自动显示   相当于是监视器 每次都会显示的。

info display        显示所有的display信息

undisplay+display  删除指定的自动显示

ptype valname     显示变量的类型,函数的类型也可以

如果数组名:      p  arr 打印数字的值

指向数组的指针:  p *ptr@len  打印数组所有的

bt  显示函数调用栈  显示函数调用的经过。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值