C++代码在Ubuntu上如何进行调试
导读:C++代码在Ubuntu上的调试方法 1. 使用GDB(GNU调试器)——命令行调试 GDB是Ubuntu下最常用的命令行调试工具,适合习惯终端操作的用户。 安装GDB:若未安装,通过终端运行sudo apt update &&a...
C++代码在Ubuntu上的调试方法
1. 使用GDB(GNU调试器)——命令行调试
GDB是Ubuntu下最常用的命令行调试工具,适合习惯终端操作的用户。
- 安装GDB:若未安装,通过终端运行
sudo apt update & & sudo apt install gdb安装。 - 编译带调试信息的代码:使用
-g选项编译C++文件,例如g++ -g main.cpp -o my_program(-g会将源代码信息嵌入可执行文件,是GDB调试的必要条件)。 - 启动GDB:在终端输入
gdb ./my_program,加载可执行文件。 - 常用调试命令:
break < 位置>:设置断点(如break main在main函数开头断点,break main.cpp:10在第10行断点);run(或r):启动程序,运行至断点处暂停;next(或n):单步执行,不进入函数内部;step(或s):单步执行,进入函数内部;print < 变量名>(或p):打印变量当前值(如print count);backtrace(或bt):查看函数调用栈,定位错误发生的位置;continue(或c):继续执行程序,直到下一个断点或程序结束;quit:退出GDB。
2. 使用Visual Studio Code(VS Code)——图形化调试
VS Code是轻量级编辑器,通过扩展支持C++调试,适合偏好图形界面的用户。
- 安装准备:从官网下载安装VS Code,打开扩展市场,搜索并安装“C/C++”(Microsoft官方扩展,提供C++语言支持)。
- 配置调试环境:
- 在项目根目录创建
.vscode文件夹; - 新建
tasks.json文件(用于定义编译任务),内容参考:{ "version": "0.2.0", "configurations": [ { "label": "g++ build active file", "type": "shell", "command": "g++", "args": ["-g", "${ file} ", "-o", "${ fileDirname} /${ fileBasenameNoExtension} "], "group": { "kind": "build", "isDefault": true} , "problemMatcher": ["$gcc"] } ] } - 新建
launch.json文件(用于配置调试参数),内容参考:{ "version": "0.2.0", "configurations": [ { "name": "g++ build and debug active file", "type": "cppdbg", "request": "launch", "program": "${ fileDirname} /${ fileBasenameNoExtension} ", "args": [], "stopAtEntry": false, "cwd": "${ workspaceFolder} ", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", "setupCommands": [{ "description": "Enable pretty-printing", "text": "-enable-pretty-printing", "ignoreFailures": true} ], "preLaunchTask": "g++ build active file" } ] }
- 在项目根目录创建
- 调试操作:打开C++源文件,在代码行号左侧点击设置断点;按下
F5键启动调试,程序会在断点处暂停,通过顶部调试工具栏进行单步执行、继续、查看变量等操作。
3. 其他调试工具
- CLion:JetBrains推出的专业C++ IDE,内置强大的调试功能(如智能断点、变量监视、内存视图),适合大型项目开发。安装后直接导入项目,点击调试按钮即可启动调试。
- Valgrind:内存调试工具,用于检测内存泄漏、非法访问等问题。安装后运行
valgrind --leak-check=full ./my_program,会输出内存错误详情(如未释放的内存块)。 - strace:系统调用追踪工具,用于分析程序与操作系统的交互(如文件操作、网络请求)。运行
strace ./my_program,可查看程序执行过程中的所有系统调用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C++代码在Ubuntu上如何进行调试
本文地址: https://pptw.com/jishu/743169.html
