关于gdb 的常用命令的简单使用

一直以来,都是在使用一些IDE的开发工具,但是前段时间,开始学习使用了vim和g++ 来重新学习c++,突然觉得应该重新学习下 一个新一点的调试工具 ,而不是出问题之后

再跑去使用vc,vs之类的工具来调试。


先写几个简答的调试命令。

run  是开始调试

finish 一直执行到该函数的返回值为止

continue 一直执行直到下一个断点 或者   程序执行结束


quit  离开调试(gdb)

下一步  next  / step   两个命令都是下一步的命令

 但是区别就像是 F10 和F11 的区别

step 进入函数内部  next  直接下一步


设置断点  break   行号 (函数名) 

撤销断点  delete break  断点号

查看所有的断点   info break   


查看 运行程序  所到的函数栈  backtrace 

选择栈帧 frame 栈帧号

查看当前栈帧的所有变量的值 info locals


跟踪某个变量 display 变量名字

取消跟踪变量 display 跟踪的变量号 

列出程序 (十行一次) list 行号 (函数名)


还有gdb的一个特点 就是 如果你不输入直接回车的话,执行的是上一次你执行的命令。

而且大部分命令单词都是可以直接缩写首字母的。 

自己写了一个简单的调试程序

#include<iostream>
using namespace std;
int add(int num1, int num2)
{
    return (num1 + num2);
}
/* 交换
 * 输入两个数
 * 直接改变引用形参*/
int change (int &num3,int &num4)
{
     int temp = num3;


num3 = num4;
num4 = temp;
 
return 0;
}
/* 最大的公约数 
 * 输入  两个数
 * 输出最大公约数*/
int the_same_num(int num5,int num6)
{
    int temp;

if(!num6)
{
       temp = num6;
  num6 = num5 % num6;
  num5 = temp;
}


return num6;
}
int main(void)
{
   int i;
   int j;
   int k;


   cout << "i:"<<i<<"j:"<<j<<endl;
   change(i,j);
   cout << "i:"<<i<<"j:"<<j<<endl; 
   k = add(i,j);
   cout<<" i +j ="<< k<<endl;
   
   k = the_same_num(i,j);
   cout<<"最小公约数:"<<k<<endl;
     
   return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值