gdb调试

作者: 枯海拾贝 | 来源:发表于2018-10-31 11:38 被阅读0次

    1. gcc a.c b.c c.c -o app==>gcc a.c b.c c.c -o app -g

    -g:会保留函数名和变量名

    2. 启动gdb

    • gdb 可执行程序的名字
    1. gdb app
    2. 给程序传参:set args xxx xxx

    3. 查看代码--l/list(默认打开main函数所在文件)

    • 当前文件:
      • l
      • l 行号
      • l 函数名
    • 非当前文件
      • l 文件名:行号
      • l 文件名:函数名
    • 设置显示的行数
      • set listsize n
      • show listsize

    4. 断点操作:b/break

    • 设置断点:
      • b 行号
      • b 函数名
      • b 文件名:行号
      • b 文件名:函数名
    • 查看断点
      • i/info b
    • 删除断点
      • d num(断点编号)
      • 删除多个:d num1 num2;d num1-num6
    • 设置断点无效
      • dis num(编号)
    • 断点生效
      • ena num(编号)
    • 设置条件断点
      • b 行号 if 变量==var

    4. 调试相关的命令

    • 让gdb跑起来
      • r(run):停在第一个断点的位置
      • start:运行一行,停止
    • 打印变量的值:
      • p 变量名
    • 打印变量的类型:
      • ptype 变量名
    • 变量的自动显示:
      • display 变量名
      • 取消:undisplay 编号
      • 查看display信息:i display
    • 向下单步调试:
      • n(next):不会进入函数体
      • s(step):会进入待函数体内部
      • finish:跳出函数体
    • 从循环体直接跳出:
      • until(不能有断点)
    • 直接设置变量等于某一个值
      • set var 变量名=value
    • 继续运行gdb,停在下一个断点的位置
      • c(continue)
    • 退出gdb:
      • q(quit)

    相关文章

      网友评论

          本文标题:gdb调试

          本文链接:https://www.haomeiwen.com/subject/cjfdtqtx.html