gdb调试常用命令

(gdb) list 1
    从第一行开始列出源码 一次列出10行,如果要从11行继续列出直接输入list或l(命令简写)
(gdb) l* <func_name>
  搜索 func_name所在位置。
(gdb)start
    开始运行程序

(gdb) next    (简写n
    单条执行指令 直接回车重复执行上一条命令 n

(gdb)step       (简写s)
    执行下一行语句,如果有函数调用则进入函数中,类似于C#中F10

(gdb)backtrace      (简写bt)
    查看函数调用的栈帧:
    (gdb) bt
    #0 add_range (low=1, high=10) at text.c:6
    #1 0x080483c1 in main () at main.c:14
  •     当前的add_range函数被main函数调用,main传进来的参数是low=1, high=10
  •     main函数的栈帧编号为1 , add_range的栈帧编号为0

(gdb)info locals  (简写i)
    查看函数局部变量的值
    (gdb) i locals
     i = 0
     sum = 0


(gdb)set var sum=0
    修改参数的值

(gdb)frame        (简写f)
    选择栈帧

(gdb)print        (简写p)
    打印表达式的值,通过表达式可以修改变量值或调用函数

(gdb)display x
     每次停下来显示参数x的当前值,undisplay取消显示

(gdb)break   5 (简写b)
    在第5行设置断点

(gdb)continue      (简写c)
    连续运行,到达断点自动停下来

(gdb)i breakpoints
    查看已设置的断点 Num为断点编号
Num     Type               Disp     Enb     Address                 What
2         breakpoint     keep         y     0x080483c3     in main at main.c:9
           breakpoint already hit 1 time
3         breakpoint     keep         y     0x08048411     in main at main.c:12


(gdb)delete breakpoints 2
    通过编号删除指定断点

(gdb)disable breakpoints 2
    通过编号禁用断点  enable 启用

(gdb) break 9 if sum != 0
    断点有效条件

(gdb)run        (简写r)
    从头开始连续运行

(gdb)x/7b str
    打印存储器中的内容。7b是打印格式,7表示打印7组,b表示每个字节一组

(gdb)watch s
    设置观察点,观察s的值变化;i watchpoints查看设置的观察点
    指定地址时,要在地址前加上*, e.g.  watch *0x88881234

(gdb)file *.o
    添加调试文件

(gdb)set solib-search-path <.so path>
    添加动态库引用路径



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值