• GDB 常用命令 ***


    运行:

      (gdb)  r

    命令行带参:

      (gdb)  r  "参数1"  "参数2"

      (gdb)  set args "参数1"  "参数2"    //set  args  10 20 40

    查看/设置 运行环境:

      (gdb)  show args     //查看命令行参数

      (gdb)  show paths    //查看运行路径  

      (gdb)  show env     //查看环境变量

      (gdb)  set evn  LINES=25  //设置环境变量  

    设置断点 break:

      (gdb)  b  function

      (gdb)  b  linenum

      (gdb)  b  + offset

      (gdb)  b  - offset

      (gdb)  b  filename:function

      (gdb)  b  filename:linenum

      (gdb)  b  *address

      (gdb)  b  xxx  if <condition>    //b 18 if i==50

    设置观察点:

      (gdb)  watch  expr    //表达式expr变化则停止

      (gdb)  rwatch  expr    //表达式expr被读时停止

      (gdb)  awatch  expr    //表达式expr被读写时停止

    查看断点/观察点 info:

      (gdb)  i

      (gdb)  i  locals    //显示当前函数所有局部变量的值

      (gdb)  i b 3    //查看第三个断点

      (gdb)  i watchpoints

      (gdb)  i watchpoints n

    设置自动显示:

      (gdb)  display i

      (gdb)  display  $pc    //显示当前内存地址

    删除自动显示:

      (gdb)  delete display dnum

      (gdb)  disable display dnum

      (gdb)  enable display dnum

    停止维护点

      (gdb)  delete

      (gdb)  clear      

      (gdb)  disable

      (gdb)  enable

      例子:

        clear          //清楚所有停止点

        clear  function    //清除该函数内部的所有停止点

        clear  filename:function

        clear  linenum    //清除某行上的停止点

        delete  n

        delete  n1-n2

        disable  n

        enable  n

    单步调试next/step:

      (gdb)  n    //逐行执行语句,不进入函数体内部

      (gdb)  s    //逐行执行语句,进入函数内部 

     

    查看源程序list:

      (gdb)  list  first,last

      (gdb)  list  linenum

    查看运行数据print:

      print  /<f>  n    //显示变量n的值

      print  /<f>  ::n    //显示全局变量n的值

      print  /<f>  array  //显示数据的值

      print  /<f>  *array@length    //显示动态分配数组的值

      /<f>:为显示格式,其值为:x/d/u/o/t/a/c/f

    查看变量类型:

      (gdb)  whatis  var        //获取变量的类型

      (gdb)  ptype  var/structname   //获取结构体定义 

      (gdb)  where            //函数的调用关系链

    查看内存:

      (gdb)  x  addr    //查看内存

      (info)  line  n    //显示第n行的内存地址

    改变程序执行流程:

      (gdb)  print i=10    //赋值

      (gdb)  print function  //执行一次函数

      (gdb)  set var i=15

      (gdb)  jump  linenum

      (gdb)  jump  address

      (gdb)  call  function    //强制调用函数

  • 相关阅读:
    C++ 编码转换
    获取文件扩展名
    字符串分割(C++)(转载)
    Visual Leak Detector简明使用教程
    Win32 文件拖拽
    IMAP协议命令(详细)
    CreateDirectory 创建文件夹 CC++
    编程习惯总结
    GitHub上整理的一些工具,求补充
    jquery生成qrcode二维码
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/7605618.html
Copyright © 2020-2023  润新知