在 Linux 下用 C++ 配合 GDB 调试,通常要做三件事:编译时加调试信息、安装 GDB、使用 GDB 调试。下面按最常见场景给你一份清晰配置指南。
g++ -g -O0 main.cpp -o main
参数说明:
-g:生成调试信息(必须)-O0:关闭优化(否则变量可能被优化掉,断点不准)✅ 推荐组合:
g++ -g -O0 -Wall -std=c++17 main.cpp -o main
sudo apt update
sudo apt install gdb
sudo yum install gdb
# 或
sudo dnf install gdb
gdb --version
gdb ./main
进入 GDB 后:
(gdb) run
| 功能 | 命令 |
|---|---|
| 设置断点 | break main.cpp:10 |
| 运行 | run |
| 单步(不进函数) | next / n |
| 单步(进函数) | step / s |
| 查看变量 | print x |
| 查看调用栈 | backtrace / bt |
| 继续执行 | continue / c |
| 退出 | quit |
示例:
break main
run
next
print a
bt
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
安装 pretty-printer(gdb 一般已支持):
print vec
或:
sudo apt install gdb-python
launch.json 使用 gdbsudo apt install cgdb
如果你用的是:
可以告诉我,我可以直接按你的环境给你具体配置。