Ubuntu上可视化调试前端软件之VScode

阅读: 评论:0

Ubuntu上可视化调试前端软件之VScode

Ubuntu上可视化调试前端软件之VScode

本文目的是在Ubuntu系统使用gdb调试程序的基础上,练习使用可视化调试前端软件VScode调试程序。

目录

  • (一)安装并配置VScode
      • 1.安装VScode
      • 2.配置VScode编译C/C++的环境
      • 3.配置VScode调试C/C++的环境
  • (二)使用VScode进行程序的调试
      • 1.调试程序
      • 2.启动调试
      • 3.修改程序
  • (三)总结

(一)安装并配置VScode

1.安装VScode

  • 方法一
    直接在Ubuntu系统自带的Ubuntu软件安装Visual Studio Code
  • 方法二
    命令行安装Visual Studio Code
    • 下载:从vscode官网下载最新版本,deb包下载地址:=linux64
      使用wget 下载地址进行下载
    • 安装:dpkg -i 安装包
      参考博文:.html 1
  • 安装好VScode后如图所示

2.配置VScode编译C/C++的环境

  • 安装C/C++插件

    在VScode的左边扩展(Ctrl+Shift+X)处搜索C/C++并安装它(我这里已经安装好了C/C++)。
  • 安装Chinese (Simplified) Language Pack for Visual Studio Code插件
    这个插件可以使VScode显示简体中文,方便使用

3.配置VScode调试C/C++的环境

  • 首先,新建vscode_program文件夹作为VScode的工作目录。(注意文件路径和文件名不能有中文,否则会报错。)
  • 在VScode中打开该文件夹(即工作目录)并新建子文件夹test存放编写的程序和生成的可执行文件,然后再新建一个C语言程序RevertNum.c。
  • 配置程序调试环境
    • 首先启动调试(F5)
    • 然后选择环境
    • 最后选择配置
    • 报错如下:
      • 从图中可以看出生成的可执行文件的路径为./vscode_program/RevertNum而不是./vscode_program/test/RevertNum
      • 原因如下:
        由于tasks.json中的命令type类型为cppbuild时会使编译以进程运行而不是以shell命令运行,因此type配置为cppbuild将会生成的文件放到根目录(工作目录)下,而改为shell会生成到当前目录下。
    • 继续调试程序,程序正常运行
      • 若想要调试程序时显示外部窗口则需要将 launch.json中的externalConsole属性改为true,显示效果如下:
      • 此时发现输出中有多余的类似[1] + Done "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-36xb7mwq.voj" 1>"/h"的内容输出,查阅网上资料2说这是正常的输出信息,忽略即可。
      • 此时终端输出如下警告:
        如果想要去掉该警告,则需在tasks.json中修改presentation的属性panel为new即可解决3
  • 修改的launch.json文件和tasks.json文件4
    • launch.json文件修改如下:
    {
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: /?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.json文件修改如下:
    {
    "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"
    }
    

(二)使用VScode进行程序的调试

1.调试程序

  • RevertNum.c
#include<stdio.h>//  函数作用:输出反转的数
void ShowRevertNum(int Num)
{while(Num>10){printf("%d",Num%10);Num/=10;}printf("%dn",Num);
}int main()
{int n;printf("Please input a number:");scanf("%d",&n);printf("After Revert:");ShowRevertNum(n);return 0;
}
  • 程序运行时的问题
    当程序输入100时输出为010,正确输出应为001。运行结果如下:

2.启动调试

  • 添加断点
    • 将鼠标放在程序所在行的左边即可看见暗红色的小圆点,单击它即可设置断点。
    • 设置如下三个断点
  • 开始调试
    利用上方的继续、单步跳过、单步调试、单步跳出等可视化方式调试该程序。
    • 当程序停在第一个断点时,Num的值为100
    • 当经过一轮while循环后Num的值变为10,此时Num>10不成立直接跳过while循环。
    • 到达第三个断点时,直接输出Num的值,此时Num值为10。
    • 调试结束

3.修改程序

将RevertNum.c中的while循环中判断条件改为Num>=10即可。成功运行如下:

(三)总结

之前直接使用gdb进行C程序的调试中让我从底层了解了gdb调试程序的过程,而使用VScode调试程序则让我从更高的层次调试程序,工作效率有了显著提升;通过可视化的调试软件,可以不用再去记忆复杂繁多的调试命令,而是直接使用鼠标可视化操作进行程序的相关调试,极大地提高了生产力。

感谢以下博客和文章对我的帮助:


  1. .html ↩︎

  2. ↩︎

  3. ↩︎

  4. =tag-newest ↩︎

本文发布于:2024-02-02 06:52:08,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170682792942103.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:软件   Ubuntu   VScode
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23