GDB学习笔记

一.启动调试

在CmakeLists.txt中设置gdb指令:

SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

调试方式运行程序:

  1. 调试启动无参程序:

gdb helloworld

2.调试启动带参程序:

gdb helloworld
run 参数

gdb helloworld
set args 参数
run

调试已运行程序:

使用ps命令找到进程id:

ps -ef|grep 进程名

获取进程id后,使用attach方式调试进程:

gdb
(gdb)attach 进程id

二、断点设置

1.info breakpoints查看已设置的断点:

2.根据行号设置断点

b 9 #break 可简写为b

b test.c:9

则运行到第9行的时候会断住

3.根据函数名设置断点:将断点设置在函数处

b printNum

4.根据条件设置断点:

假设程序某处崩溃,怀疑崩溃的原因是某个地方出现了非期望的值,那么可以在这里使用条件设置断点

break test.c:23 if b==0

当在b等于0时,程序将会在第23行断住

它和condition有着类似的作用,假设上面的断点号为1,那么相当于:

condition 1 b==0

5.根据规则设置断点:

例如 rbreak printNum* 意思是对所有以printNum开头的函数都设置了断点


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值