GDB调试工具

 

一、GDB的概述

Linux包含了一个叫gdb的GUN调试程序。gdb是一个用来调试C和C++程序的强有力调试器。他使你能在程序运行时观察程序的内部结构和内存的使用情况。它具有以下一些功能:

1.监视程序中变量的值;

2.设置断点以使程序在指定的代码行上停止执行;

3.一行行的执行代码。

二、GDB常用命令

 三、GDB调试编译代码

为了使gdb正常工作,必须使你的程序在编译时包含调试信息。在编译时用-g选项打开调试选项

四、gdb常用命令使用

装入调试文件:1.gdb a.out
2.gdb
   file a.out 

查看源代码list或l
(gdb)list      不指定行号,随机列出行号
(gdb)list 20 显示第20行周围的内容,一般时前后各一半
(gdb)list 2,16 显示从第2行到第16行

运行命令run或r
(gdb)run  运行程序

下一步next或n
(gdb)next 下一步

单步执行step或s
(gdb)step  下一步

继续运行continue
(gdb)continue  下一步

首行开始start
(gdb)start   重新开始

五、断点操作

设置断点通常要结合list查看代码行号,设置成功后,使用ru'n命令运行程序避免断点设置在空行或注释行上。

(gdb)break 4
(gdb)run      
指定行设置断点

(gdb)break add
(gdb)run
指定函数前设置断点

使用表达式设置断点
(gdb)break 12 if  i==9
(gdb)run
(gdb)info locals

显示当前gdb断点信息info break:查看当前断点信息
(gdb)info break

删除断点delete breakpoint或d

删除断点号n的断点
(gdb)d  break  1

禁止或启用断点enable或disable

清除断点clear

观察点watch

1.设置断点
(gdb)b  9
2.运行
(gdb)run
3.设置观察点
(gdb)watch i==3
4.continue继续,等待条件满足触发中断

查看数据

查看变量值peint或p:查看某个变量的值

自动显示变量display:当程序运行停住时,自动显示变量值

其他命令

结束当前函数运行finish:当gdb进入某个函数后使用命令finish退出当前函数

结束当前for循环jump:在gdb进入某个循环后,使用命令跳到第n行,(注意;最好在同一函数内jump,不能超过本函数,否则肯会出错

查看变量类型ptype:查案谋变量的类型

列出当前程序存活的栈帧bt:随着函数调用而在stack上开辟的一篇内存空间。用于存放函数调用时产生的局部变量和临时变量

根据栈帧编号,切换栈帧frame:frame n   根据显示存活的栈帧编号n,切换到栈帧n

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值