linux gdb

来源:互联网 发布:davinci软件 编辑:程序博客网 时间:2024/06/17 00:15

首先 建立一个用于测试cpp文件  这里命名字为 gdbtest.cpp

写入如下代码

#include<iostream>using namespace std;int  add(int a,int b){   int sum=a+b;   return sum;}int main(){  cout<<"I am just a gdb test"<<endl;int num1=3,num2=5;int sum=add(num1,num2);cout<<sum<<endl;  cout<<"the  first line"<<endl;cout<<"then the second line"<<endl;  return 0;}
终端编译   g++ -g -o gdbexample gdbtest.cpp      //这里-g必须加入 不然无法用gdb进行调试

gdb 命令表

在终端输入gdb 进启动调试

 file gdbexample                           //打开调试程序


list 1 或者l 1                    回车 重复上个 指令 继续列出               //从第一行开始列出程序


break 13          或者    b 13        //在第13行设置断点 

info breakpoints   或者 i b      //显示断点信息

delete 1    或者  d 1                 //删除编号1的断点

编号123 我给删了 没截图  delete 1-3  就是删除编号1-3的断断点不是按行号记录的


r 或run           //运行程序

c 或continue //断点调试 继续运行

删除断点 信息  给第11行设置新断点

b 11

然后r 运行

在11行断点之后进行单行调试

s或step是进入程序内部的单行调试

n或next是进入函数内部的单行调试     //next 就不写了


p num1 print num1 //打印当前num1参数的值


watch  sum   w sum   //监视sum变化

当sum 发生改变 会给出Old value 和New value的相应提示

然后ctrl+z或者q就是退出调试了

———————————————————————————————————————————————————

实际上,用不习惯vim和gdb的我  个人感觉使用vscode编写代码 调试更舒服一点:)

原创粉丝点击