Linux(三) GDB 的使用

GDB是什么

Gdb 是Linux 调试代码的一个工具。
安装:

apt install gdb -y

第一次使用:

//首先编译时候要编译出debug需要的信息到可执行文件中。
# g++ -g hello.cpp //-g 是生产debug 信息
//使用gdb运行可执行文件
# gdb a.out
//显示文件信息 l
(gdb) l 
//下面是显示的文件信息:
1	#include <iostream>
2	
3	int main()
4	{
5		std::cout<<"Hello world"<<std::endl;
6		return 0;
7	}
//添加断点:
(gdb) break 5
Breakpoint 1 at 0x106e8: file hello.cpp, line 5.
//开始运行:
(gdb) run
Starting program: /home/pi/code/test-cpp-helloworld/a.out 

Breakpoint 1, main () at hello.cpp:5
5		std::cout<<"Hello world"<<std::endl;
//下一步
(gdb) next
Hello world
6		return 0;
//继续下一步
(gdb) next
7	}
//好了到此结束吧 按q退出。

更新一下=====================================

第n次使用

虽然已经用了还算挺久,但是还没有可以得心应手的程度记录一下使用的命令吧。

上次使用的命令

  l  &&  run  && break  && next

发现都是用的完整的单词,其实可以使用缩写如:

l  &&  r  &&  b  &&  n  && bt  && fr  && c  && p

我就把最常用的几个打了出来,用&&分割请不用在意这个分隔符。

l 对应 list

显示源码, 按空格或者继续输入l就一直往下显示,但是有时候想看前面的代码就需要输入l-

r 对应run

从头运行,第一次必须使用r来运行程序,如果程序需要参数,也是在这里加的,而不是gdb application时候加。如r config.jsonr重新运行程序后我们设置的断点已经有效。

b 对应 break

设置断点,有几种方式,直接按b就是在当前位置加断点,b file_name.cpp:10文件加:就是在指定文件的n行加断点,还有一个就是b main程序入口加断点。

n 对应 next

是单步运行

bt 对应 backtrace

就是堆栈的意思

fr 对应 frame

我看到还可以按f不过我没试过,我每次都是fr n,切换对应层的堆栈。

c 对应 continue

就是继续意思

p 我猜是对应 print

输出的意思。一般p后面加变量或者方法。

===============更新结束

过程中参考了一个博客:[CSDN-使用gdb调试程序完全教程1](https://blog.csdn.net/gatieme/article/details/51671430)


  1. [CSDN 使用gdb调试程序完全教程]https://blog.csdn.net/gatieme/article/details/51671430 ↩︎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值