Ubuntu下C++如何进行调试
在Ubuntu下使用C++进行调试
对于在Ubuntu环境下进行C++开发的程序员来说,调试是绕不开的一环。好消息是,我们有非常强大的工具可以选择,无论是经典的命令行调试器GDB,还是现代集成开发环境(IDE)如CLion、Visual Studio Code提供的图形化调试功能,都能帮你高效地定位问题。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

下面,我们就来详细拆解一下最基础、也最核心的GDB调试流程。掌握了它,你就能理解调试的底层逻辑,再使用任何IDE的调试功能都会觉得得心应手。
1. 编译带有调试信息的程序
调试的第一步,是让编译器在生成可执行文件时,把源代码和二进制指令之间的对应关系也打包进去。这个关键步骤,就靠一个简单的 -g 选项来完成。比如,你的程序文件叫 myprogram.cpp,那么编译命令就该这么写:
g++ -g -o myprogram myprogram.cpp
少了这个选项,调试器就会像看天书一样,无法将运行时的状态映射回你的源代码。
2. 启动GDB
程序编译好后,就可以请出我们的主角GDB了。启动命令非常简单直接:
gdb myprogram
执行后,你就进入了GDB的交互式命令行环境,准备开始一场“代码侦探”之旅。
3. 设置断点
调试的核心思想是控制程序的执行流程,而不是让它一泻千里。这就需要设置“断点”(Breakpoint)。比如,你想让程序在刚进入 main 函数时就停下来,可以输入:
break main
当然,你也可以指定具体的源代码行号,比如 break 10 就是在第10行暂停。
4. 运行程序
断点设好,就可以让程序跑起来了。在GDB里,启动程序的命令是:
run
程序会开始执行,并在你设置的第一个断点处乖乖停下。
5. 程序暂停与状态检查
程序暂停的那一刻,就是你的调查时间。这时,整个执行现场被“冻结”了。你可以查看此刻各个变量的值,观察函数调用栈是怎么一层层走到这里的,这些信息是找出bug的黄金线索。
6. 单步执行
接下来,你可以像放慢镜头一样,仔细审视每一行代码的执行效果。这里有两个常用命令:
step:执行下一行代码。如果下一行是一个函数调用,它会“步入”那个函数内部。next:同样执行下一行代码,但如果遇到函数调用,它会“步过”,即把整个函数当作一步来执行,不进入其内部。
选择“步入”还是“步过”,取决于你是想深入调查某个函数,还是确认它本身没有问题。
7. 继续执行
如果当前断点处的问题已经查清,想让程序继续自由奔跑,直到撞上下一个断点,那就用:
continue
8. 查看变量与表达式
在程序暂停的任何时刻,你都可以使用 print 命令来窥探内存。比如 print variable_name 可以查看某个变量的值,甚至可以直接计算一个表达式,例如 print a+b。
9. 结束调试
调查完毕,退出GDB环境,命令很简单:
quit
图形化IDE:更直观的选择
当然,如果你更喜欢直观的点击操作,现代的IDE提供了完美的图形化调试界面。在CLion或Visual Studio Code这类工具里,设置断点只需要点击代码行号旁边,查看变量有专门的侧边栏窗口,单步执行也有直观的按钮。你几乎不需要手动记忆任何GDB命令。
以Visual Studio Code为例,你需要先安装官方的C++扩展,然后在项目目录的 .vscode/launch.json 文件里做好调试配置。之后,一键点击调试按钮即可开始。
而在CLion中就更省心了,调试功能是开箱即用的。它自动帮你处理好了背后的编译和GDB命令,你只需要关注代码逻辑本身。
说到底,调试更像是一门手艺,核心在于对程序运行状态的理解。无论是命令行还是图形界面,都是辅助你达成这一目标的工具。多实践几次,你自然会找到最适合自己的调试节奏,解决bug的效率也会越来越高。
相关攻略
在 Ubuntu 上更新 Python 的可选方案与步骤 一 方法总览与选择建议 面对 Ubuntu 系统上 Python 版本的更新需求,其实有几种主流路径可选。每种方法都有其特定的适用场景,选择的关键在于平衡便捷性、隔离性与对现有系统的影响。 简单来说,你可以考虑以下四种方案: 使用 APT +
在 Ubuntu 上安装与运行 Python 程序 一、安装 Python 解释器 万事开头难,但安装Python解释器这事儿,其实不难。关键在于选对方法。 使用系统包管理器安装(推荐) 打开终端,先更新软件源索引,然后直接安装:sudo apt update && sudo apt install
Ubuntu 中 Python 的安装与环境配置教程 一 安装前准备 在开始安装之前,先做好这几项准备工作,能让后续过程顺畅不少。 更新索引并升级系统: 打开终端,首先运行这条命令,确保你的软件包列表是最新的,同时升级所有可更新的包: sudo apt update && sudo apt upgr
在 Ubuntu 上安装与配置 Python 环境 一 快速开始 APT 安装 对于大多数用户来说,最直接、最省心的方式,莫过于使用 Ubuntu 自带的包管理器 APT。这个方法的好处是,安装的 Python 与系统其他组件的兼容性最好,几乎不会出现依赖冲突的问题。 更新索引并安装基础组件: su
优化Ubuntu上的PHP会话管理 想让你的Ubuntu服务器上PHP应用跑得更稳、更快、更安全吗?会话管理这块,往往是性能瓶颈和安全风险的藏身之处。今天,我们就来聊聊几个立竿见影的优化策略。 1 选择合适的会话存储方式 别总让会话数据躺在默认的文件系统里。随着流量增长,文件I O很容易成为拖慢应
热门专题
热门推荐
在Ubuntu上分析Ja va应用程序的性能瓶颈 当Ja va应用在Ubuntu服务器上响应变慢或资源吃紧时,从哪里入手才能快速定位问题?性能调优不是盲目尝试,而是一场有章可循的系统性排查。通常,我们可以遵循一套从宏观到微观、从系统到代码的分析路径。 话不多说,我们直接来看具体步骤。这套方法的核心在
在Ubuntu上为Ja va应用配置自动日志清理 管理Ja va应用的日志文件是个绕不开的活儿。日志不清理,磁盘空间迟早告急。好在Ubuntu系统自带一个强大的工具——logrotate,它能帮你实现日志的自动轮转、压缩和清理,彻底解放双手。下面就来详细说说怎么配置。 第一步:安装logrotate
Ubuntu Ja va日志查询优化指南 排查Ja va应用问题,日志是首要线索。但在Ubuntu环境下,面对动辄数GB的日志文件,如何快速、精准地找到关键信息,而不是在文本海洋里盲目翻找?这就需要对日志查询进行系统性的优化。下面,我们就从终端操作到系统配置,再到架构层面,梳理一套高效的日志处理流程
在 Ubuntu 系统中定位 Ja va 应用程序日志错误 排查 Ja va 应用问题,第一步往往是找到日志。在 Ubuntu 系统里,日志可能藏在好几个地方,具体取决于应用的运行方式。别着急,咱们按图索骥,一个个来看。 1 控制台输出 最简单直接的情况:如果你是通过命令行手动启动应用的,那么所有
在Ubuntu系统中筛选Ja va应用程序日志 处理Ja va应用程序日志时,精准定位问题往往是关键一步。在Ubuntu环境下,grep命令无疑是完成这项任务的得力工具。首先,得找到日志文件的位置——它们通常藏在应用程序的安装目录里,或者静静地躺在 var log这个系统日志大本营中。 具体怎么操作





