• gdb调试小结


    一、启动调试

     测试程序

      1 #include<iostream>
      2 using namespace std;
      3 class AA
      4 {
      5     void f(){}
      6 };
      7 int main()
      8 {
      9     cout<<sizeof(AA)<<endl;
     10     AA a;
     11     cout<<sizeof(a);
     12     return 0;
     13 }

    g++/gcc 命令加-g表示使用了gdb调试:

     file+生成的可执行文件(test):导入调试文件

    二、常用调试命令(断点调试)

    r 开始执行(run),如果有断点则直至第一个断点(break)

    b 设置断点

    b num(行号)

    b function(函数名)

    tb 断点位置 设置临时断点(只生效一次)

    i b 检查断点信息

    b 断点位置 if 条件  设置条件断点

    ignore bnum count 表示接下来的count编号为bnum的断点忽略。

    d 断点编号 删除断点(delete)

    c 断点之后继续执行到下一个断点(continue)

    n 单步运行(next)

    s 进入函数(step) 

    finish 执行至退出函数

    start 停留在main函数的第一条语句

    p 参数 打印参数信息

    info 文件/函数 文件/函数信息

     三 、设置观察点

    修改了一下测试文件

      1 #include<iostream>
      2 using namespace std;
      3 class AA
      4 {
      5     void f(){}
      6 };
      7 int main()
      8 {
      9     int b=1;
     10     for(int i=1;i<10;i++)
     11         b++;
     12     cout<<sizeof(AA)<<endl;
     13     AA a;
     14     cout<<sizeof(a);
     15     return 0;
     16 }

     watch 观察点 (遇到变量值变化,程序就会停下来)

     i watch 查看观察点

    d 序号 删除观察点

     四、退出

     q

  • 相关阅读:
    VUE 脚手架模板搭建
    defineProperty
    理解JS中的call、apply、bind方法
    Two-phase Termination模式
    打印样式设计
    浏览器内部工作原理
    Immutable Object模式
    怎么跳出MySQL的10个大坑
    控制台console
    整理的Java资源
  • 原文地址:https://www.cnblogs.com/kiplove/p/7460646.html
Copyright © 2020-2023  润新知