本文目的是在系统使用gdb调试程序的基础上,练习使用可视化调试前端软件调试程序 。
目录(二)使用进行程序的调试(三)总结
(一)安装并配置 1.安装安装好后如图所示
【Ubuntu上可视化调试前端软件之VScode】2.配置编译C/C++的环境3.配置调试C/C++的环境继续调试程序,程序正常运行
修改的.json文件和tasks.json文件4
文章插图
{// 使用 IntelliSense 了解相关属性 。// 悬停以查看现有属性的描述 。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "gcc - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,//是否显示外部调试窗口"MIMode": "gdb","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: gcc build active file","miDebuggerPath": "/usr/bin/gdb"}]}
{"tasks": [{"type": "shell",配置为cppbuild将会生成的文件放到根目录下,而改为shell会生成到当前目录下"label": "C/C++: gcc build active file","command": "/usr/bin/gcc","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "/usr/bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "Generated task by Debugger","presentation": {"echo": true,"reveal": "always","focus": false,"panel": "new",//这里shared表示共享,改成new之后每个进程创建新的端口"showReuseMessage": true,"clear": true}}],"version": "2.0.0"}
(二)使用进行程序的调试 1.调试程序
#include//函数作用:输出反转的数void ShowRevertNum(int Num){while(Num>10){printf("%d",Num%10);Num/=10;}printf("%d\n",Num);}int main(){int n;printf("Please input a number:");scanf("%d",&n);printf("After Revert:");ShowRevertNum(n);return 0;}
2.启动调试开始调试
利用上方的继续、单步跳过、单步调试、单步跳出等可视化方式调试该程序 。3.修改程序
将.c中的while循环中判断条件改为Num>=10即可 。成功运行如下:
(三)总结
之前直接使用gdb进行C程序的调试中让我从底层了解了gdb调试程序的过程,而使用调试程序则让我从更高的层次调试程序,工作效率有了显著提升;通过可视化的调试软件,可以不用再去记忆复杂繁多的调试命令,而是直接使用鼠标可视化操作进行程序的相关调试,极大地提高了生产力 。
感谢以下博客和文章对我的帮助:
??
??
??
??
- 网盘搜索神器-皮卡搜正式上线啦!致力于让终身学习者找资源更加方便!
- IPv6 ND协议
- 应用上架 阵前磨枪 2M-APK瘦身实测可行又便捷的方法
- 跑步机上dis什么意思 跑步机上DIS什么意思
- 1 Python可视化——用pyqt5实现一个操作pdf的小程序GUI
- 1.8-1.9字符数组
- 进来看看 动物出击2什么时候上映
- 在有经纬网的地图上 经纬地图
- 上篇 域名之父—蔡文胜
- 三只松鼠良品铺子纷纷急于上市,后来者何处求生?