温馨提示×

linux c++配置怎么配gdb

小樊
44
2026-09-05 04:55:56
栏目: 编程语言

Linux 下用 C++ 配合 GDB 调试,通常要做三件事:编译时加调试信息、安装 GDB、使用 GDB 调试。下面按最常见场景给你一份清晰配置指南。


一、编译时开启调试信息(最关键)

1️⃣ 使用 g++ 编译

g++ -g -O0 main.cpp -o main

参数说明:

  • -g:生成调试信息(必须
  • -O0:关闭优化(否则变量可能被优化掉,断点不准)

✅ 推荐组合:

g++ -g -O0 -Wall -std=c++17 main.cpp -o main

二、安装 GDB

Debian / Ubuntu

sudo apt update
sudo apt install gdb

CentOS / Rocky / Alma

sudo yum install gdb
# 或
sudo dnf install gdb

验证

gdb --version

三、使用 GDB 调试 C++ 程序

1️⃣ 启动 GDB

gdb ./main

进入 GDB 后:

(gdb) run

2️⃣ 常用 GDB 命令(必会)

功能 命令
设置断点 break main.cpp:10
运行 run
单步(不进函数) next / n
单步(进函数) step / s
查看变量 print x
查看调用栈 backtrace / bt
继续执行 continue / c
退出 quit

示例:

break main
run
next
print a
bt

四、使用 CMake 配置 GDB(推荐)

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(demo)

set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")

add_executable(demo main.cpp)

构建:

mkdir build && cd build
cmake ..
make
gdb ./demo

CMAKE_BUILD_TYPE=Debug 是关键


五、常见坑 & 解决方案

❌ 没有调试信息

No symbol table info available

✅ 确保加了 -g


❌ 变量显示 <optimized out>

✅ 使用 -O0


❌ STL 容器看不清

安装 pretty-printer(gdb 一般已支持):

print vec

或:

sudo apt install gdb-python

六、进阶(可选)

  • VS Code + GDB
    • 安装 C/C++ 插件
    • 配置 launch.json 使用 gdb
  • CGDB(更好看的 GDB)
sudo apt install cgdb

如果你用的是:

  • Makefile
  • CLion / VS Code
  • 多线程 / core dump

可以告诉我,我可以直接按你的环境给你具体配置。

0