gdb调试必须使用带-g选项编译的可执行文件,否则无法映射源码;break支持函数名、文件行号、成员函数全限定名等定位方式;run启动程序,next不进函数,step进入函数;backtrace查看调用栈,frame切换栈帧,print查看变量;关闭编译优化(-O0)是确保调试准确的前提。
直接运行 gdb 不加参数会进入空调试环境,无法设置断点或运行;必须指定已编译且含调试信息的可执行文件,比如 gdb ./a.out。若用 g++ 编译,务必加 -g 选项,否则 gdb 无法映射源码行号、变量名或查看局部作用
域:
g++ -g -o main main.cpp。漏掉
-g 是最常见导致“断点打在汇编行”“print x 显示 Cannot access memory”的原因。
break,但位置写法影响命中效果break 支持多种定位方式,选错会导致断点不触发或停在意外位置:
break main:停在 main 函数第一行(推荐用于入口检查)break main.cpp:12:停在 main.cpp 第 12 行(需确保该行有可执行语句,空行或注释行无效)break ClassName::methodName:C++ 成员函数需写全限定名,例如 break Vector::push_back
break *0x401234:按地址设断点(极少用,仅用于无符号信息或 inline 函数调试)断点设完后用 info breakpoints 查看编号和状态;用 disable 1 或 delete 1 管理,避免多断点干扰单步流程。
run/next/step,区别直接影响调试效率这三个命令行为差异明显,误用会导致跳过关键逻辑或陷入系统库:
run(或简写 r):启动程序,支持传参,如 run arg1 "arg two"
next(n):逐行执行,**不进入函数体**,把函数当黑盒;适合快速跳过标准库调用step(s):逐行执行,**遇到函数就进入其第一行**;C++ 中对重载函数或模板实例容易卡在未知头文件里,此时可先 finish 退出当前函数特别注意:对内联函数(inline)、std::vector::size() 这类 trivial getter,step 可能直接跳到汇编或报 “No source file”的错误——这不是 bug,是编译器优化+调试信息缺失的正常表现。
backtrace,但要结合 frame 和 print 定位真实问题backtrace(bt)只显示调用链,真正定位崩溃原因得往下挖:
bt:默认显示全部帧,太长时可用 bt 5 只看最近 5 层frame 2:切换到第 2 帧(从 0 开始),让后续 print、list 针对该栈帧上下文生效print x 或 p this->data_[i]:打印变量或表达式;C++ 中访问成员需显式写 this->,尤其在模板类中list(l):显示当前帧所在源码,默认 10 行;list 20,30 可指定范围如果 bt 显示大量 ?? 或地址(如 #3 0x00007ffff7b8a1a0 in ?? ()),说明对应共享库没装 debuginfo 包(如 Ubuntu 的 libstdc++6-12-dbg),此时只能靠源码逻辑推理,无法查看 STL 内部变量。
-g,若同时用了 -O2,gdb 也可能显示变量值为 ,或者单步跳转错乱——这不是 gdb 的问题,是编译器优化抹除了调试所需的信息。真要调试逻辑,关优化(-O0)比学多少 gdb 命令都管用。
# access
# ubuntu
# 栈
# ai
# c++
# 区别
# 作用域
# 标准库
# print
# 成员函数
# break
# 重载函数
# 堆
# delete
# this
# bug
相关文章:
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
html制作网站的步骤有哪些,iapp如何添加网页?
再谈Python中的字符串与字符编码(推荐)
子杰智能建站系统|零代码开发与AI生成SEO优化指南
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何在万网开始建站?分步指南解析
想学网站制作怎么学,建立一个网站要花费多少?
,想在网上投简历,哪几个网站比较好?
如何选择适配移动端的WAP自助建站平台?
如何在建站之星绑定自定义域名?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
宝塔建站无法访问?如何排查配置与端口问题?
已有域名和空间如何搭建网站?
建站之星如何配置系统实现高效建站?
建站之星导航如何优化提升用户体验?
香港服务器选型指南:免备案配置与高效建站方案解析
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
Swift中循环语句中的转移语句 break 和 continue
网站制作难吗安全吗,做一个网站需要多久时间?
开源网站制作软件,开源网站什么意思?
建站主机功能解析:服务器选择与快速搭建指南
学校建站服务器如何选型才能满足性能需求?
jQuery 常见小例汇总
建站之星各版本价格是多少?
建站之星2.7模板:企业网站建设与h5定制设计专题
php json中文编码为null的解决办法
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何构建满足综合性能需求的优质建站方案?
建站之星如何防范黑客攻击与数据泄露?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
如何快速查询域名建站关键信息?
如何在阿里云部署织梦网站?
Android自定义listview布局实现上拉加载下拉刷新功能
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
建站之星安装后如何自定义网站颜色与字体?
如何配置支付宝与微信支付功能?
建站之星24小时客服电话如何获取?
javascript中的try catch异常捕获机制用法分析
如何在VPS电脑上快速搭建网站?
建站之星上传入口如何快速找到?
如何续费美橙建站之星域名及服务?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
建站DNS解析失败?如何正确配置域名服务器?
如何用好域名打造高点击率的自主建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。