zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    回顾C#3.0新特性(3)
    第五周作业
    第六周基础作业
    第三周syh
    基础作业
    第七周作业
    2019年春季学期第四周作业
    第八周作业
    .Net 反射
    C#中SqlParameter
  • 原文地址:https://www.cnblogs.com/kiplove/p/7460646.html
Copyright © 2011-2022 走看看