zoukankan      html  css  js  c++  java
  • gdb命令初步使用

    gdb命令使用:使用gdb之前,编译程序g++时需要加-g参数(生成调试符号表)

      1、gdb filename  //调试一个可执行文件

       -->quit(q)退出调试

      2、暂停机制(①断点、②监视点、③捕获点),在这里只说断点。

        break 函数名(b)

        break 行号

        break 路径:行号(demo_11_15/swap.cpp:5)

        break 路径:函数名(demo_11_15/swap.cpp:swap)

        info breakpoints (i b) //查看所有断点

        注意:在不停止gdb的情况下,从新编译代码后,gdb进行run(r)时可以感知代码的变化

        delete 断点号或函数名(在之前可以先用i b查看断点) //删除一个或多个断点

        clear  //清除gdb将执行的下一指令处的断点,可以当delete用,用法相似。

        disable 断点号  //禁用断点

        enable 断点号  //启用断点

        注意:下图type为类型(①断点、②监视点、③捕获点),disp为断点的状态(keep、del、dis),Enb为是否启用。

        

      3、执行程序

        run(r)   //使程序执行起来。或重新执行

        step(s) //单步执行(进入函数)。

         next(n) //单步执行(不进入函数)。

        continue(c) //继续执行直到下一个断点或结束。

        continue n   //在后面的n个断点不停止,停止到n+1断点处(在循环中意为执行n次循环)。

        finsh(fin) //执行完当前函数

        until(u)//执行完当前循环。下图是until的一个特例。until后面也可以跟行号,函数名

        

      4、条件断点

        break main if i > 5 //当执行到循环i>5时停下。

        break main if i == 10 

        cond 1 i == 3 //将正常断点1设置为条件断点,条件为i == 3

        cond 1 //恢复断点1为正常断点

        。。。。复杂的以后再补上。

      5、监视点

        watch i  //当每次i变化时都会断住。

        watch 表达式

      6、变量

        print 变量(p)   //打印出变量值。

        p/x i       //打印i的16进制值 类似还有 p/c i 和p/s i     //打印ascii字符和string

        info locals    //打印当前栈帧中的所有局部变量

        set $i = 0  p w[$i++]       //当w为程序中的数组时,可以让i当做数组的下标。i是gdb设置的一个方便变量(convenience variable)

        p *$i    //打印变量$i的值

        

       

  • 相关阅读:
    图匹配板子
    线性基
    Berlekamp-Massey algorithm
    组合/概率/形式幂级数/多项式/集合幂级数的题
    费用流 Dijkstra 原始对偶方法(primal-dual method)
    UVA-12304
    二项式系数
    卡特兰数
    多项式模板
    工具
  • 原文地址:https://www.cnblogs.com/Ccluck-tian/p/11867202.html
Copyright © 2011-2022 走看看