商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Linux环境下C++如何调试

Linux环境下C++如何调试

  发布于2026-07-16 阅读(0)

扫一扫,手机访问

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

Linux环境下C++如何调试

编译:带上调试信息

要想让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调出手册页,或者找一些在线教程实战几轮,比死记命令有效得多。

本文转载于:https://www.yisu.com/ask/98061600.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注