在 CentOS 上做 C++ 调试,常用的工具组合是 gcc/g++ + gdb(+ optionally valgrind / strace / clang-tools)。下面按“从零开始”的方式给你一套实用配置。
sudo yum groupinstall "Development Tools"
这会装好 gcc、g++、make、gdb 等。
sudo yum install gcc gcc-c++ gdb make cmake
sudo yum install valgrind strace ltrace
一定要加 -g,否则 gdb 看不到源码。
g++ -g -O0 main.cpp -o main
说明:
-g:生成调试信息-O0:关闭优化(否则变量可能被优化掉)gdb ./main
run # 运行程序
break main # 在 main 设断点
break file.cpp:20
next # 单步(不进函数)
step # 单步(进函数)
print x # 打印变量
backtrace # 查看调用栈
continue # 继续执行
quit # 退出
gdb --args ./main arg1 arg2
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
sudo yum install gdb
launch.json){
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/demo",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}"
}
]
}
-gstripfile main
<optimized out>-O0sudo yum install devtoolset-9
scl enable devtoolset-9 bash
| 工具 | 用途 |
|---|---|
| valgrind | 内存泄漏 |
| strace | 系统调用 |
| perf | 性能分析 |
| clang-tidy | 静态检查 |
如果你告诉我:
我可以给你更精确的配置方案。