文章目录
- 可视化的代码跟踪调试
- 1、安装Visual Studio Code
- 2、用vscode编译调试C\C++
- 总结
可视化的代码跟踪调试
ubantu18.04的环境下,在命令行工具gdb调试基础上,利用可视化调试前端软件Visual Studio Code,(后端依然依赖gcc、gdb)进行程序代码的跟踪查错,提高工作效率。
1、安装Visual Studio Code
进入应用商店之后,搜索Visual Studio Code:
之后点击Visual Studio Code图标开始下载:
等一会儿,安装成功如下:
点击桌面左上角的“活动”(我用的是Ubantu18.04),搜索Visual Studio Code:
点击VScode图标,将其拖到桌面收藏夹位置:
2、用vscode编译调试C\C++
点击vscode图标进入:
ctrl+p调出命令行,输入ext install cpptools回车后:
点击第一个C/C++ 1.0.1 install进行安装,完成后退出vscode,再次重启进入:
修改调试模板文件对源代码进行调试:
注意:如果源代码只有一个,使用默认的模板文件就可进行调试和运行;工程中的源文件众多,不可以直接调试,此时需要创建或者生成tasks.json和launch.json文件(tasks.json文件用于自动在终端中输入gcc指令,编译输出可运行文件,launch.json文件用于启动gdb程序进行调试的。
具体操作如下:
(1)在vscode中点击file之后,选择open folder打开事先准备好的GDB文件夹,其中只有一个test.c文件(vscode调试只能打开包含源码文件的文件夹,不能打开单个文件调试),点击右上角的“ok”:
test.c代码如下:
#include <stdio.h>
void ShowRevertNum(int iNum)
{while (iNum > 10){printf("%d", iNum % 10);iNum = iNum / 10;}printf("%d\n", iNum);
}
int main(void)
{int iNum;printf("Please input a number :");scanf("%d", &iNum);printf("After revert : ");ShowRevertNum(iNum);
}
(2)点击界面右边图标第四个,页面顶部出现一个选择面板,选择C++(GDB/LLDB)插件:
(3)之后再根据提示,选择“g++ -生成和调试活动文件”,运行结束后自动生成launch.json文件;
点击工具栏上的Terminal,选择Configure Tasks -> C/C++:gcc build active file,VSCode会自动生成适用于gcc编译的tasks.json文件保存后继续进行编译,需要在第九行后添加语句:
"${fileDirname}/test.c",
command就是调用的控制台命令;
args就是命令行参数了,-g参数是必须的,否则到时候没有调试信息,vscode会无法设置断点。
配置好后在test.c文件界面,我们就可以先按ctrl+shift+B先编译,再按上方调试工具栏的图标绿色箭头:
发现输入为“100”时,原则上应该输出“001”,但是现在输出的是“010”,说明代码出现问题,设置断点开始调试,将调试的断点设在第4行的while循环处,点击上方调试工具栏的图标绿色箭头,如下图所示:
此时点击下图箭头所指的图标开始向下调试:
调试后发现,当iNum=10时,程序会跳出循环,因此此时修改循环条件为
while (iNum > 9)
再次点击上方调试工具栏的图标绿色箭头,再次重复上述步骤进行调试:
程序编译成功,输入“100,显示倒序输出”001“,没有出错。
参考来源:
https://www.cnblogs.com/lwp-king666/p/10513382.html
https://blog.csdn.net/q932104843/article/details/51924900
https://www.cnblogs.com/maxiaowei0216/p/12616087.html
总结
本次学习主要是在命令行工具gdb调试基础上,熟悉使用可视化调试前端软件Visual Studio Code进行程序代码的跟踪查错,提高工作效率,实现了可视化的代码跟踪调试。