发布于2026-07-16 阅读(0)
扫一扫,手机访问
在Linux环境下调试C++程序,GDB(GNU调试器)几乎是每个开发者绕不开的工具。它的功能强大,但上手其实并不复杂。下面就把最核心的操作链捋一遍,读懂了就能直接上手干活。

要想让GDB识别你的代码,编译时一定要加上-g选项。这条选项会把源文件的符号信息嵌入到可执行文件中,否则调试器看到的只有一堆乱码地址。
g++ -g -o myprogram myprogram.cpp
编译完成后,直接启动GDB并加载程序:
gdb myprogram
关键的一步是设置断点。比如想停在main.cpp第10行,敲:
break main.cpp:10
如果只对函数名感兴趣,也可以直接写函数名——break main会停在main入口。
设置好断点后,用run让程序跑起来。程序会停在第一个断点处,这时候就可以像看电影一样逐帧播放了。
想跳过函数内部,就用next(简写n);想钻进函数里面看实现细节,就用step(简写s)。两个命令的区别很小,但使用场景完全不同——调试第三方库函数时,通常用next快速跳过,而看自己写的逻辑时,step才有价值。
停在某个断点后,最常干的事就是看变量的值。直接用print(简写p)加上变量名:
print variable_name
如果遇到指针或结构体,可以配合*解引用,或者用print *ptr一次打印整个结构体内容。
处理完当前断点,可以用continue(简写c)让程序继续跑,直到碰到下一个断点或结束。如果程序崩了或停在某处想回溯调用链,backtrace(简写bt)会直接把函数调用栈列出来,从上到下就是出问题时的路径。
调试完毕,输入quit退出。以上这些命令覆盖了90%的日常调试场景。GDB的能力远不止于此——条件断点、监视点、线程调试、逆向执行等等,都是进阶玩法。想继续深入,直接敲man gdb调出手册页,或者找一些在线教程实战几轮,比死记命令有效得多。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8