C/C++生态工具链——GDB调试器

一,GDB简介

        GDB全称是GNU symbolic debugger,是Linux平台下最常用的一款调试器。GDB主要用于C/C++开发场景,同时也支持Go、Ada等语言的调试。GDB主要以命令行的形式在shell终端使用,它的一部分底层逻辑借助于ptrace进行实现。GDB的功能很强大,开发者可以在执行时修改函数变量的值以及程序的执行顺序,还可以在程序执行期间查看函数的调用过程、堆栈数据等,也可以利用GDB对代码进行断点调试。

二,两种常见编译模式:Debug模式 & Release模式

Debug模式:

        代码在编译时会显示出完整的调试信息以定位问题,编译期间可以查看程序的运行时信息,且编译期间不考虑对代码的执行进行优化。生成的可执行文件执行速度偏慢。

Release模式:

        代码在编译时不会显示调试信息,并且编译期间会优化代码的执行。生成的可执行文件执行速度较快。

        GDB主要在Debug模式下进行使用。

三,GDB的使用流程

step.1: 开始编译之前,需要配置调试相关的编译命令

a.如果使用gcc/g++编译,需要加入参数“-g"。

b.如果使用cmake编译,需要在CMakeLists.txt中加入:

SET(CMAKE_BUILD_TYPE "Debug")    //选择Debug编译模式
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")  
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

step.2: 编译生成可执行文件以后,利用GDB进入调试模式,常用的方式有如下三种

方式1:gdb [program]            

利用gdb在当前目录直接启动可执行程序。

方式2:gdb [program] core      

利用gdb同时调试可执行程序和core文件,core是程序非法执行时产生的文件,比如程序core dump后产生的文件。

方式3:gdb [program] [pid]

利用gdb调试服务的一个进程,pid指定了要调试的进程。运行该指令,gdb会以attach的方式进入进程内部开始调试。

step.3: 调试完,退出GDB界面

方式1:在gdb窗口敲下快捷键Ctrl+z

方式2:在gdb窗口输入指令"quit"或"q"

<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员与背包客_CoderZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值