zoukankan      html  css  js  c++  java
  • VSCode 调试

    调试环境

    • 系统:Windows10
    • 开发语言:C
    • 编译工具: Qt - mingw730_32

    使用步骤

    1. 配置Qt的 mingw730_32/bin到环境变量path中, 如果不使用Qt要先安装Mingw
    2. 安装C/C++扩展插件
    3. 编写调试例子,并打测试断点
    4. F5启动调试器
    5. 首次选择环境 C++ (GDB/LLDB)

    1. 首次选择配置 gcc.exe - 生成和调试活动文件,这里注意要打开待调试的C文件,否则不会出现对应的配置选择,这就是活动文件的深意,其次环境变量也一定要配好。

    1. 所有操作完成后会跳到调试界面的断点上,调试窗口可实时查看变量值,调试操作可通过快捷键或右上角工具条完成。

    1. 至此完毕。

    配置分析

    上述几个步骤会在当前路径下生成了一个.vscode文件夹,其中包括调试配置文件launch.json、编译任务文件tasks.json。配置项通过preLaunchTask属性链接任务的label

    launch.json

    属性 描述
    name 启动配置菜单名
    program 调试对象,${fileBasenameNoExtension} 活动文件名
    miDebuggerPath 调试器路径
    preLaunchTask 调试前调用的任务label

    tasks.json

    属性 描述
    type 任务类型,"cppbuild","shell"
    label 任务标签,与preLaunchTask值相同则被调用
    command 编译命令,"${file}"活动文件
    args 编译参数

    含多个源文件

    配置调试活动文件适用于单源文件程序,顾名思义就是一个.cpp构成一个应用程序,相同目录下的各cpp相互独立,这样上述步骤生成的配置文件就适用该目录下的所有程序。

    test
        \.vscode
        \main1.c
        \main2.c
        \main3.c
        ...
    

    但如果需要调试一个工程即多源文件程序时要怎么进行呢?例如:

    test
        \.vscode
        \function1.c
        \function2.c
        \main.c
    

    这个时候在 tasks.json 文件的 args 属性值中,将"${file}"改为"${fileDirname}\\*.c"就可以了。若是复杂工程可以编写Makefile来设定编译规则,使用make进行编译,只要编译时指定-g 选项同样也可以实现调试。

    使用 Makefile

    编写Makefile,注意编译规则要加上-g选项。

    out ?= a.out
    all:
    	gcc -g *.c -o $(out)
    

    tasks.json文件的"tasks"属性数组值中添加一项任务。

    {
        "type": "shell",
        "label": "C/C++: make.exe 生成活动文件",
        "command": "mingw32-make.exe",
        "args": [
            "out=${fileDirname}\\${fileBasenameNoExtension}.exe"
        ]
    },
    

    修改launch.json中的任务调用。

    // "preLaunchTask": "C/C++: gcc.exe 生成活动文件"
    "preLaunchTask": "C/C++: make.exe 生成活动文件"
    
    1. 快捷键F5启动生成和调试。
  • 相关阅读:
    StringBuffer与Stringbuilder
    String与其他类型的转换
    创建多进程的方法
    8.进程
    克隆虚拟机
    初探12306售票算法(二)-java代码实践
    初探12306售票算法(一)- 理论
    手机上mcd程序耗电异常问题相关
    vue版app上下拉加载
    css基础
  • 原文地址:https://www.cnblogs.com/llil/p/14491238.html
Copyright © 2011-2022 走看看