后端系统开发之工作和面试中的gdb

本文介绍了gdb在后端系统开发中的应用,包括分析core文件、调试运行中的程序以及设置断点。核心文件分析涉及gdb命令如bt、f和p,调试运行中的程序使用gdb -p PID。面试中,gdb的多线程调试和查看STL容器是重点,如info thread、t N和thread apply all bt。阅读文章可提升gdb使用技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gdb是C/C++程序员必备的专业技能,工作中gdb最常用的场景有两个,一个是分析core文件,另一个是调试程序。

 

分析core文件的方法如下:

1、gdb 程序名 core文件名

2、bt或where命令查看堆栈信息。

3、进入某个栈:f N,f是frame的缩写,N是栈号,如0、1、2、3...

进入到某个栈后,才能通过p命令查看这个栈的临时变量,否则只能查看全局变量。

 

例如a.out程序core产生了core文件core-a.out-12345,gdb方法如下:

gdb a.out core-a.out-12345

bt(或者where)

f 3,进入第3帧

 

调试一个正在运行的程序使用gdb -p PID命令,PID即程序的pid。

需要注意的是,gdb调试正在运行的程序会导致程序挂起,因此请记住不要gdb调试正在运行的在线服务。

 

设置断点的方式有很多种,最常见的有两种:一是设置程序运行到源代码的某一行,二是设置程序运行到某个函数。

 

设置程序运行到某一行,通过“文件名:行号”的形式:

b test.cpp:100

设置程序运行到某个函数,通过“名字空间::函数名”的形式:

gdb namespace_a::func

 

查看断点:info b

删除断点:d N,d是delete的缩写,N是断点的编号࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值