C++ GDB如何调试?Linux下C++程序调试入门指南【GDB教程】


GDB调试C++程序核心三步:编译加-g、启动GDB、设断点运行;关键在明确停靠位置、检查数据状态、控制执行流程。

c++ gdb如何调试?linux下c++程序调试入门指南【gdb教程】

直接用 GDB 调试 C++ 程序,核心就三步:编译带调试信息、启动 GDB、下断点跑起来。关键不是记命令,而是搞清“在哪停、怎么查、怎么走”。

编译时必须加 -g 参数

不加 -g,GDB 看不到变量、函数名、行号,等于盲调。哪怕用了 -O2 优化,也建议保留 -g(但注意:过度优化可能让源码和汇编错位,初学建议先用 -O0)。

  • 正确写法: g++ -g -o myapp main.cpp utils.cpp
  • 错误写法: g++ -o myapp main.cpp(GDB 启动后会提示 "No debugging symbols found")
  • 如果用 CMake,确保 set(CMAKE_BUILD_TYPE Debug) 或手动加 -DCMAKE_CXX_FLAGS="-g"

常用 GDB 启动与运行命令

启动后别急着 run,先确认环境是否就绪。

  • gdb ./myapp —— 加载程序(不运行)
  • gdb ./myapp core —— 用 core 文件分析崩溃现场
  • runr —— 开始执行(可跟参数:r --input test.txt
  • kill —— 终止当前调试中的程序
  • quitq —— 退出 GDB

断点和单步:精准控制执行流

断点不是越多越好,关键是停在你想看的地方:函数入口、可疑逻辑前、对象构造/析构时。

BlessAI BlessAI

Bless AI 提供五个独特的功能:每日问候、庆祝问候、祝福、祷告和名言的文本生成和图片生成。

BlessAI 135 查看详情 BlessAI
  • break main —— 在 main 函数第一行设断点
  • break MyClass::doWork —— 断在类成员函数(支持重载,必要时加参数类型)
  • break file.cpp:25 —— 在指定文件第 25 行设断点
  • nextn)—— 下一行(不进入函数)
  • steps)—— 进入函数内部(遇到函数调用就跳进去)
  • finish —— 执行完当前函数,停在它的返回点

查看数据:变量、内存、调用栈

停住之后,重点是验证“程序状态是否符合预期”。

  • print var_namep var_name)—— 查变量值(支持 p *ptrp arr@10 打印数组前 10 个)
  • info locals —— 显示当前栈帧所有局部变量
  • bt(backtrace)—— 看函数调用链,崩溃时第一时间输它
  • frame 2 —— 切到第 2 层调用栈,再用 p 查那层的变量
  • x/4dw &i —— 以“4 个有符号十进制整数”格式查看变量 i 的内存(适合查越界、未初始化)

基本上就这些。不复杂但容易忽略的是:每次改代码后记得重新编译再 gdb;core 文件要开启 ulimit -c unlimited;C++ 模板、内联、RAII 会让调用栈看起来绕,多用 bt fullinfo registers 辅助判断。练几次,比读十页文档管用。

以上就是C++ GDB如何调试?Linux下C++程序调试入门指南【GDB教程】的详细内容,更多请关注其它相关文章!


# app  #   # ai  # c++  # 停在  # 行号  # 三步  # linux  # 萝岗网站关键字优化  # 汉中seo公司到1火星  # 抖音搜索seo优化案例  # 如何搞店铺营销推广  # 网站优化技术团队简介  # 佛山哪个网站推广好  # 附近seo报价  # 微信网站建设基础  # 公司网站推广软件  # 孝感网站建设广告词  # 用了  # 相关文章  # 几次  # 编解码  # 网络编程  # 客户端  # 的是 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 苹果17 Pro如何启用分屏浏览_iPhone 17 Pro分屏浏览设置步骤  《友玩*》创建群聊方法  歌词怎么展示在|直播|间视频号?有什么注意事项?  Python实时数据流中高效查找最大最小值  PDF文件去水印平台入口 PDF水印删除网址  研招网官方网站招生平台入口_中国研究生招生信息网官网登录  键盘保修需要什么_键盘售后维修流程  如何自定义苹果手机铃声  Go反射进阶:访问内嵌结构体中的被遮蔽方法  Win11便笺在哪打开 Win11桌面便笺(Sticky Notes)使用方法【详解】  苹果手机聊天记录删除了如何恢复  win11如何开启单声道音频 Win11为听障用户合并左右声道【辅助】  《密马》发布账号方法  《爱笔思画x》魔棒工具抠图教程  微信客户端如何找回密码_微信客户端忘记密码找回方法  J*a里如何处理ArithmeticException并防止除零_算术异常防护策略解析  驱动人生:游戏修复指南  如何在CSS中使用absolute实现登录弹窗居中_transform translate结合  如何在 WordPress 前端实现内容提交:古腾堡编辑器的替代方案与实践  c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化  韩小圈网页版PC端入口 韩小圈网页版官方网站入口  PHP页面重载后变量状态保持:实现用户档案连续浏览的教程  Pydantic 中“schema”字段命名冲突的解决方案  除了Copilot,还有哪些值得一试的VS Code AI插件?  realme 10 Pro息屏方案_realme 10 Pro省电策略  漫蛙漫画官方版直通入口 2025漫蛙漫画免注册访问说明  智学网成绩单查询系统网_智学网学生平台登录  优化响应式标题底部边框:CSS实现技巧与最佳实践  C++ virtual析构函数作用_C++基类虚析构函数防止内存泄漏  三角洲行动2025年9月10日摩斯密码分享  《下一站江湖2》心法融合技巧  《图怪兽》退出登录方法  iPhone 13 mini如何清理Safari缓存_iPhone 13 mini浏览器缓存清理方法  Python自动化抓取GBGB赛狗比赛结果:日期范围与赛道筛选教程  背部总是隐隐作痛怎么回事 背痛如何改善  中通快递官网指定查询 中通快递单号查询平台入口  顺丰官方查单号入口 顺丰快递单号查询官网入口  申通快件单号查询平台 申通包裹物流动态跟踪  sf漫画官网登录入口直达_sf漫画官方正版网址  哔哩哔哩在线观看入口 B站官网免费进入  qq邮箱怎么注册_QQ邮箱注册步骤与注意事项  2025SNH48年度青春盛典门票价格及购买方式  知音漫客官网首页入口_知音漫客热门漫画推荐  12306夜间购票失败? | 查看官方公布的暂停服务公告与应对方案  抖音如何解除|直播|权限绑定_抖音关闭并解绑|直播|功能的方法  Go App Engine 项目结构与包管理深度指南  Python项目中的条件导入:解决跨模块依赖问题  XPath动态元素定位:如何精准选择文本内容变化的元素  电脑双系统如何安装和卸载 Windows和Linux双系统安装教程【详解】  高德地图怎么查看未来行程规划_高德地图未来行程规划查看方法 

 2025-12-14

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.