• 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的值

        

       

  • 相关阅读:
    "Illegal group reference"异常的分析
    一个基于WEB的js时间控件的实现
    ASP.NET网站的网络安全性
    关于"parseInt"
    【C#算法】冒泡排序 选择排序 插入排序 希尔排序转
    【c#】web.config续
    【C#】GridView用法
    [C#]接口引
    【SQL】DBCC
    【C#】泛型
  • 原文地址:https://www.cnblogs.com/Ccluck-tian/p/11867202.html
Copyright © 2020-2023  润新知