gdb 简单使用

如果让我用最简单的话形容一下高gdb, 那我觉得“强大”两个字就足矣了。废话少说,上干货。

在应用层开发程序,有很多调试工具可以选择,各种环境有各自的工具帮助开发人员定位问题以解决问题,但在linux中,尤其是嵌入式开发中,gdb 就是比较出名的调试工具了,为什么呢,因为它强大嘛!

gdb简介:
最牛逼的UNIX下的程序调试工具,没有之一。可以动态改变程序运行环境,能够随心所欲的控制程序的运行及查看程序的一切,对,就是一切。
通过gdb命令行,我们可以查看文件清单,管理断点,查看数据,变量检查赋值,单步执行等各种各样的功能。

要注意说明的是,gdb使用的前提是,在贬义的时候一定要在编译选项中使用 -g 参数。

命令简介:
gdb通过一些列指令来实现其功能,下面介绍一些常用的gdb指令。

  1. list 查看源代码
    list xxx 查看第xxx行的代码
    list +n 查看当前行的后面n行代码
    list - n 查看当前行的前面n行代码
    list function 查看function函数的代码
  2. 运行程序
    gdb binFile 加载binFile二进制文件
    set args 设置运行参数
    r (run) 运行该二进制文件
  3. 显示数据
    p (print) vals 打印变量vals的值
    p *vals 查看其他复杂变量的值, 包括数组,指针等
    whatis val 查看val变量的类型
  4. 断点管理
    b (break) lineNum 在第lineNum处设置断点
    b functionname 在函数functionName处设置断点
    b filename:line-numbe 在某个文件的特定行设置断点
    b line-or-function if expr 通过条件变量设置断点 eg:b 123 if val == 2
    info break 查看所有的断点信息
    delete breakpoint 删除所有断点
    delete breakpoint 1 删除断点1
    disable breakpoint 1 过滤断点1
    enable breakpoint 1 使能断点1
  5. 函数执行
    n (next) 单步执行该程序

一般来说,作为程序开发人员来说,我们使用最多的就是断点设置以及变量查看功能,至于其他基础功能,只是更好的为这两个基本功能增强而已。

这个工具只是帮助开发人员定位非语法问题而已。入门比较简单,如果想用到其强大的功能,可以参考一下其他资料,加深一下学习。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章