gdb调试基础

1.GDB使用
(1)编译时采用-g参数。
(2)gdb +可执行文件
(3)core文件解析:gdb + 可执行文件 + core文件(ubuntu core文件生成 执行前运行unlimit -c unlimited设置core文件大小无限制,另对于段错误,gdb运行程序,直接执行,程序停止的位置即为段错误导致的地方)
(4)显示程序源码:

l(list)							显示默认10行
l(list)+ 函数名
l(list)+ 文件名:函数名
(5)程序运行
r(run)					运行直到遇到断点
c(continue)				继续执行到下个断点
u(until) 行号  			运行至某行(单执行u跳过当前循环)
call function(params) 	调用程序中可见函数
s(step)					逐步会进入函数体
finish						跳出进入的函数体
n(next)					逐过程
(6)退出gdb q(quit)。

2.断点设置
(1)基本设置

b(break) 函数名
b(break) 行号
b(break) 文件名:函数名
b(break) 文件名:行号

(2)条件断点:在当变量某个条件停止
例:b 20 if var == 66
(3)查看 ,删除,使能,停用断点

i(info) b(break)    查看断点信息
delete + 断点ID         删除指定断点
enable + 断点ID         使能指定断点
disable + 断点ID		停用指定断点

3.变量操作
(1)查看变量值变量类型

p(print)  变量名  			查看变量值 
ptype       变量名			查看变量类型
(2)变量显示
display    var

(3)设置变量值

set var   变量名 = n

(4)变量监视

watch <表达式>:表达式发生变化时暂停运行
awatch <表达式>:表达式被访问、改变时暂停执行
rwatch <表达式>:表达式被访问时暂停执行

4.多进程调试
默认跟踪父进程,在运行过程中可通过set follow-fork-mode child和set follow-fork-mode parent来跟踪子进程和父进程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值