GDB基本命令

        借用阿甘老妈的一句话:“Life is like a box of chocolates, you never know what you're going to get.”。

        自己做梦也不会想到,多年之后又回到Linux的世界中。生活中的事情有太多不确定性,但如果你准备的够充分,再怎么变化,也都在你的掌控之中。

今天来把自己多年都没有完全记下的GDB相关的东西写在blog里,随我到任何国度也可以信手捻来。

        GDB是Linux世界中最常用的调试工具,主要功能就是下断点、单步、看变量的值,以及反汇编功能。其实并不复杂,而且你可以man一下它,就不怕自己忘记命令了。

前提:

编译出可调试的代码,例如:gcc -g test.c -o test

用GDB调试:gdb test

1.list命令(l)

        列出代码,可以带行数或方法名,例如:l 13 或 l main

2.run命令

        将程序跑起来

3.break命令

        下断点,例如:

     (gdb) break 函数名
     (gdb) break 行号
     (gdb) break 文件名:行号
     (gdb) break 文件名:函数名
     (gdb) break +偏移量
     (gdb) break -偏移量
     (gdb) break *地址

4.单步

        next(n)单步执行,不会进入函数内部

        step(s)却可以

        until(u)直接退出循环体

5.continue(c)

        继续,直到程序结束或下一个断点

6.print

        程序停住后,打印运行数据

7.watch

        观察某个表达式,一旦有变化,就停止运行并打印出相应的值。

8.examine

        查看内存地址中的值

9.jump

       参数可以是行号也可以是地址

10.signal

        产生一个信号量,1~15(参见UNIX的信号量)

11.return

        强制返回

12.call

        强制调用某函数

13.info

        查看信息如:

        info registers

        info all-registers

        info registers <指定寄存器>

        info break

        info watchpoints

        info signals

        info handle

14.disassemble

        反汇编,如:

        disass main


参考:

        《Linux设备驱动开发详解》

        《C语言开发手册》

        《Debug Hacks》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值