zoukankan      html  css  js  c++  java
  • 最简单的gdb调试步骤

    1. 使用gcc -g 参数编译生成可调试的程序app

    gcc main.c -o app -g

    2. 启动gdb调试程序

    gdb app

      如果需要给程序传递参数的话,在gdb启动后使用set args传参:

    set args xxx xxx xxx

       启动调试:

    run  #或缩写:r

    3. gdb启动后查看代码的命令:list(缩写:l)

    l             #默认显示10行代码
    l 25   #查看第25行附近的代码
    l main.c #查看main.c的代码
    l math.c:add #查看math.c文件中 add函数的代码
    l math.c:30   #查看math.c文件中 第30行附件的代码
    • show listsize       #查看list命令一次显示的行数
    • set listsize 20   #设置list命令一次显示20行

    4. 设置断点的命令:break(缩写:b)

    b  12    #在第12行添加断点
    b 行号    
    b 函数名  
    b 文件名:行号
    b 文件名:函数名

    5. 查看断点信息的命令:info(缩写:i)

    i b

         

    6. 删除断点的命令:del(缩写:d)

    d 2      #删除Num为 2 的断点
    d 3 8 #删除Num为3和8的断点
    d 4-7    #删除Num(从4到7)的断点

    7. 设置断点无效的命令:dis

    dis 8      #停用Num为8的断点

        

     8.启用断点的命令:ena

    ena  8    #启用Num为8的断点

       

    9.设置条件断点: 

    b 17 if i==10         #循环体中i的值为10时,断点生效

        

    10. 启动程序开始调试的命令:run(缩写:r)

    11.程序遇断点后,继续运行程序的命令:continue(缩写:c)

    12.打印变量值的命令:print(缩写:p) 

         

    13.查看变量类型的命令:ptype

         

    14.逐步调试命令:next(缩写:n)

    15.显示变量值的命令:display 

    display  变量

         

    16.查看当前显示变量的列表:

    i display

         

    17.取消变量值的显示命令:undisplay

    undisplay  Num

    18.进入函数内部的命令:step(缩写:s)

         

    19.跳出函数体的命令:finish

      注意:函数体内部如果有循环断点的话, 无法达到跳出函数体的效果。

    20.设置变量值的命令:set var

    set var x=10    #设置变量x的值为10

    21.跳出for循环的命令:until

      注意:for循环中如果还有断点的话,是达不到跳出for循环效果的。

    22.退出调试的命令:quit(缩写:q)

  • 相关阅读:
    C# JavascriptSerializer与匿名对象打造Json的完美工具
    C# 跨线程访问或者设置UI线程控件的方法
    使用Windows Live发布博客到博客园
    Ubuntu搭建ssh连接(连接方式:桥接网卡、网络地址转换(NAT))
    SQLServer right函数 从右侧截取指定位数的字符串
    python+MySQL架构
    pip换源(更换软件镜像源)
    Ubuntu搭建mysql,Navicat Premium连接
    一起学习造轮子(三):从零开始写一个React-Redux
    一起学习造轮子(二):从零开始写一个Redux
  • 原文地址:https://www.cnblogs.com/ziwuxian/p/13046568.html
Copyright © 2011-2022 走看看