在 Debian 系统上调试 GCC 编译/运行问题,通常分为几类场景:编译错误、运行时错误、程序崩溃、性能问题。下面按“从入门到进阶”给你一套实用调试思路。
sudo apt update
sudo apt install build-essential gdb valgrind
build-essential:gcc、g++、makegdb:调试器valgrind:内存检查gcc -Wall -Wextra -Werror main.c -o main
常见错误:
gcc -g -O0 main.c -o main
-g:生成调试符号-O0:关闭优化(方便调试)gdb ./main
run
break main
next
step
print x
backtrace
quit
gdb ./main
run
bt
可以看到崩溃调用栈
valgrind ./main
常见问题:
示例输出:
Invalid read of size 4
gcc -E main.c
gcc -S main.c
gcc -v main.c
可看到:
sudo apt install libc6-dev
或指定路径:
gcc -I/usr/include/xxx main.c
gcc main.c -L/usr/lib -lxxx
gcc --version
多版本切换:
sudo apt install gcc-11 gcc-12
sudo update-alternatives --config gcc
make DEBUG=1
或:
make CFLAGS="-g -O0"
查看执行过程:
make V=1
如果是:
可用:
strace ./main
ltrace ./main
| 问题类型 | 工具 |
|---|---|
| 编译错误 | gcc -Wall |
| 崩溃 | gdb |
| 内存 | valgrind |
| 系统调用 | strace |
| 汇编 | gcc -S |
如果你愿意,可以告诉我:
我可以直接帮你定位问题。