如何使用GDB在C++可执行文件的main函数第一行中断?
GDB调试操作步骤
- 启动GDB加载目标可执行文件,执行命令:
gdb ./A,如果A不在当前工作目录下,替换为可执行文件的实际路径即可。因为你是用Debug模式编译的产物,自带完整调试符号,GDB可以直接识别到程序的main函数符号,不需要提前知道main所在的源文件位置。 - 设置main函数入口断点,直接执行命令:
break main,GDB会自动匹配全局的main函数符号,完成断点设置。 - 启动程序运行,执行命令:
run,程序启动后会自动中断在main函数的第一行有效代码处。 - 如果需要确认main函数所在的源文件和具体行号,中断后执行
list命令,即可打印当前断点位置前后的源代码内容,同时会显示对应的源文件路径和行号。
注意:如果执行
break main时提示找不到符号,先确认CMake编译时确实指定了Debug模式,没有添加去除符号的编译选项,你也可以执行file ./A命令查看当前可执行文件是否包含调试信息。
内容的提问来源于stack exchange,提问作者zhonhel
相关产品推荐
相关产品推荐

