温馨提示×

在Ubuntu上如何调试C++代码

小樊
42
2025-09-19 18:01:04
栏目: 编程语言

在Ubuntu上调试C++代码的常用方法

1. 使用GDB(GNU Debugger)调试

GDB是Ubuntu下最常用的命令行调试工具,适合习惯终端操作的用户。

  • 安装GDB:通过终端运行sudo apt update && sudo apt install gdb安装。
  • 编译代码(添加调试信息):使用g++ -g -O0 your_file.cpp -o your_executable编译(-g生成调试信息,-O0关闭优化以避免变量被优化掉)。
  • 启动GDB:终端输入gdb ./your_executable加载程序。
  • 常用调试命令
    • break <function_name或line_number>:设置断点(如break mainbreak main.cpp:10);
    • run:启动程序(若有命令行参数,可追加如run arg1 arg2);
    • next(或n):单步执行,不进入函数内部;
    • step(或s):单步执行,进入函数内部;
    • print <variable_name>:打印变量值(如print x);
    • backtrace(或bt):显示当前调用堆栈(用于排查函数调用问题);
    • continue(或c):继续执行至下一个断点或程序结束;
    • quit:退出GDB。

2. 使用Visual Studio Code(VS Code)调试

VS Code是轻量级图形化编辑器,通过扩展支持C++调试,适合喜欢可视化操作的用户。

  • 安装必要组件:从官网下载安装VS Code,打开扩展市场搜索并安装“C/C++”扩展(用于语法高亮和调试)。
  • 配置调试环境
    • 创建项目文件夹并在VS Code中打开;
    • 按下Ctrl+Shift+P,选择“Configure Default Build Task”,选择“g++ build active file”生成tasks.json文件(用于定义编译任务,需包含-g参数);
    • 按下F5,选择“C++ (GDB/LLDB)”,配置launch.json文件(指定调试器路径和可执行文件路径)。
  • 编译与调试:按下Ctrl+Shift+B编译项目,按下F5启动调试(可在代码中设置断点,通过调试面板查看变量和调用堆栈)。

3. 其他辅助工具

  • Valgrind:用于检测内存泄漏和非法内存访问,安装命令sudo apt install valgrind,使用示例valgrind --leak-check=full ./your_program
  • strace:跟踪程序的系统调用和信号,帮助理解程序行为,使用示例strace ./your_program

0