zoukankan      html  css  js  c++  java
  • Makefile (2) gdb

    gdb调试


    1.用debug的方式编译

     -g

    2.打上断点

    3.单步调试

      step into   进入函数里面
      step over   运行整个函数
      step return 跳出当前函数

     

    4.继续运行

    5.打印和监控值


    下面是栗子:

     1  #include <stdlib.h>
     2  #include <stdio.h>
     3  4   static int add(int i)   //创建一个函数,循环10次,将传进来的数每次+1
     5   {
     6       
     7       for(int k=0;k<10;k++)
     8       {
     9           i += 1;
    10       }
    11       return i;
    12   }
    13 14   int main(int argc, char const *argv[])
    15   {
    16       int ret;
    17       ret = add(10);  //调用函数
    18       printf("%d
    ",ret);
    19       return 0;
    20   }

    (1) 编译的时候,带调试编译

    gcc test.c -g -o a.out

    (2) 用gdb运行

     gdb a.out

    (3) 打断点

      >>1.查看源码

    l(ist)
      >>2.打断点
          b(reak) 函数名
          b(reak) 行号
          b(reak) 文件名:行号
          b(reak) 行号 if条件
      >>3.查看断点
    info break(i b)
      >>4.删除断点
        d(elete)

    -----------------------------------------------
     //1.先用 l 看源码

     //2.打断点
     //b 7 在第7行打断点
     //b add 在函数add打断点
      //3.查看断点 i b

     

      //4.删除断点 d <断点号>

    (4) 调试

      1.r(un)         调试
      2.c(ontinue)    继续
      3.q(uit)        退出
      1.n(ext) --step next
      2.s(tep) --step into
      3.f(inish) --退出当前函数
      4.c(ontinue) --把剩下的执行完

    (5) 打印值和监控值

      1. w(atch) x 监控x变量
      2. p(rint) x 把x值打印出来

    (6) 神奇的wi --输入wi

     

  • 相关阅读:
    OpenCV && C++ 01
    图像矩的理解
    Halcon Example
    LabVIEW
    Working Experience
    Working Experience
    Working Experience
    C++
    Trigger,Cursor
    Paging
  • 原文地址:https://www.cnblogs.com/kmist/p/10177167.html
Copyright © 2011-2022 走看看