• gdb快速学习


    入门案例:

    用gcc/g++编译:

    gcc -g -o test test.c

    g++ -g -o test test.cpp

    其中-g是调试模式 -o是对程序进行优化连接等

    终端输入gdb进入gdb调试 再 file test

    如图:

     

     注意运行是./你的c程序名

    不加./可能不认为是当前目录

     然后可以gdb

    file hhh //调试你文件

    run 就是运行 输入q或quit退出

    这就是一个简单的gdb入门案例

    熟悉了之后直接gdb hhh 就可以了

    方便的命令: gdb hhh -tui

    其实gdb -tui hhh 也行

     会可视化显示你的代码  很方便

    断点的设置:

    b 2 在第2行设置断点

    cl 2  在第2行取消断点

    常用的还有b/cl  函数名 注意是在函数入口处

    d:删除所有断点

    d 2 删除编号2的断点

    cl 2  删除第2行断点

    其他命令:

    c:继续运行(中断后用) 直到下一个断点

    u 9:程序运行到第九行然后暂停

    u fun :程序运行到fun()函数的入口暂停

    disp x + 1:每次自动输出x+1的值 (x :变量)

    dis disp 禁用所有disp

    en disp 启用所有disp     disp:display

    回车:执行上条语句

    n:单步运行 遇到函数直接跳过函数 计算出值

    s:单步运行 和n类似 但是会进入函数内部

    p  x:输出x的值 (p:print)

    call :执行一段代码 有返回值输出至屏幕

    i (info): 好用 显示信息

    i b :显示 所有断点

    i lo : x显示局部变量

    i disp :显示所有disp

    d disp:删除所有disp

    bt :查看堆栈

    高级命令:

    ig ignore 3 7 :让编号为3的断点前7次到达时都不停下来 第8次时停下来

     cond condition 给断点加一个条件

    cond  2 i > 3 : 2号断点只有在i>3才起作用

    comm commands 在几号断点后停下来执行一段gdb命令 如comm 2 p x 在2号断点停下来执行p x 打印变量x的值(用得少)

    wa watch 

    wa i 当i的值发生改变时停下来

    aw awatch    aw i:当变量i被读写时都停下来

    rw rwatch      rw i:当变量i被读时停下来

    还有一个

    b 7 if i ==9

    在第七行设置断点 在i=9时停下来

    其他技巧:

    查看数组元素:

    p *arr@10 查看arr数组的前10位(arr[0]-arr[9])

    p arr[3]@5 查看arr[3]及其后4位 共5位

  • 相关阅读:
    前端性能优化方案-路由懒加载实现
    写 React / Vue 项目时为什么要在列表组件中写 key,其作用是什么
    自定义组件实现双向绑定v-model
    前端开发中如何快速定位问题
    修改浏览器属性配置的作用---开发机上解决跨域的方式
    vue展示md文件,前端读取展示markdown文件
    js数组去重
    VUE错误码Attribute ':sizeOpts' must be hyphenated
    前端开发-日常开发沉淀之git提交文件忽略
    创建一个新的分支并关联远程分支
  • 原文地址:https://www.cnblogs.com/ranzhong/p/15801294.html
Copyright © 2020-2023  润新知