GDB调试工具

GDB调试工具

   

Mascot:射水鱼

GDB官网:    https://www.gnu.org/software/gdb/                                    

GDB适用的编程语言: Ada / C / C++ / objective-c / Pascal 等。

GDB的工作方式:  本地调试和远程调试。

目前release的最新版本为8.0,GDB可以运行在Linux 和Windows 操作系统上。

 

1. GDB简介

1.1 what is GDB?

  (1)GDB【gnu debuger】是GNU 开源组织发布的一个强大的UNIX 下的程序调试工具。

  (2)能够跟踪程序的执行【execute】,观察程序运行时内部的状态;当程序崩溃时【crashed】,查看程序崩溃前的状态。

1.2 GDB的功能  (plus other things in support of these)

  (1)自定义程序的启动方式(指定影响程序运行时的参数)

  (2)设置断点

  (3)回溯检查导致程序异常结束的原因  【core dump】

  (4)动态改变程序执行流        【可以跳过一些代码以此定位出问题的地方】

1.3 为什么需要 GDB?

  (1)软件不是一次性开发完成的,在软件开发的任何阶段都有可能存在bug

  (2)调试是软件开发中不可或缺的技术,调试工具对于软件开发很重要

2. GDB 和binutils工具集区别

  GDB是动态分析工具,binutils工具集是静态分析工具。

3. gdb的启动及退出

3.1 gdb的启动

  gdb的启动方式有3种,这3种方式分别适用不同的场合下。

  (1) gdb <program>

  这种方式是在GDB内操作可执行程序,可以在shell命令行输入gdb <program> 或者进入gdb后输入file <program>

  

  (2)gdb <program> core

  当程序执行发生异常时,会发生核心转储(core dump),产生core文件。可以使用gdb对core文件进行分析,定位问题所在的文件代码行。

  (3)gdb attach pid

  gdb可以动态的连接到一个进程上,使用之前使用 ps -aux 查看想要连接的进程的PID号。

3.2 gdb的退出

  使用 quit  /  q  /  crtl +d  退出gdb。

Tips】 使用GDB前需要完成的工作

  (1)在编译C/C++源码时,需要添加 -g 选项,将调试信息添加到可执行文件中,供gdb使用

  (2)Linux下默认是不产生core文件的,要使用 umilit -c unlimited 命令进行设置,这样才能产生供gdb使用的core文件

4. 使用GDB进行断点调试

断点的分类

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值