目录

  • 1.新增配置文件
  • (1)c_cpp_properties.json
  • (2)files.associations
  • (3)tasks.json
  • (4)CMakeLists.txt
  • 2.断点调试


1.新增配置文件

VS Code的配置文件一般是指特定目录下的JSON文件。所谓JSON是一种文本格式,用于轻量化地存储一组{键: 值}信息,诸如编译器的路径、调试器的路径和有关选项等。
我们这里所做的调试配置放在当前工作文件夹下的.vscode子目录中,具有最高优先级,出错了想从头来直接删除里面的配置文件即可。
这里新增的配置文件有:

(1)c_cpp_properties.json

这里是cpp的配置选项,主要用于配置头文件路径:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/c++/8",
                "/usr/local/opencv/include/opencv4/opencv2/",
                "/usr/local/opencv/include/opencv4"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

(2)files.associations

将某种特殊文件类型关联到vscode已支持的文件类型

{
    "files.associations": {
        "*.cu": "cuda-cpp",
        "*.cpp": "cpp",
        "deque": "cpp",
        "string": "cpp",
        "vector": "cpp",
        "*.tcc": "cpp",
        "__hash_table": "cpp",
        "__split_buffer": "cpp",
        "__tree": "cpp",
        "array": "cpp",
        "bitset": "cpp",
        "initializer_list": "cpp",
        "iterator": "cpp",
        "map": "cpp",
        "queue": "cpp",
        "random": "cpp",
        "set": "cpp",
        "stack": "cpp",
        "string_view": "cpp",
        "unordered_map": "cpp",
        "utility": "cpp",
        "__atomic": "cpp",
        "__functional_base": "cpp",
        "__functional_base_03": "cpp",
        "__tuple": "cpp",
        "algorithm": "cpp",
        "chrono": "cpp",
        "type_traits": "cpp",
        "filesystem": "cpp",
        "functional": "cpp",
        "limits": "cpp",
        "memory": "cpp",
        "ratio": "cpp",
        "tuple": "cpp",
        "istream": "cpp",
        "ostream": "cpp"
    }
}

(3)tasks.json

编译用,调试程序将在编译好的debug程序上进行调试
这里其实是执行了make -j6

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "make -j6"
        },
       
    ]
}

(4)CMakeLists.txt

编写完后使用make命令产生makefile,供(3)进行make编译.
这里特别注意:#添加-g 参数以支持带有gdb调试信息,否则无法下断点

#设置CMAKE最`在这里插入代码片`低版本
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)
MESSAGE(STATUS "start!")
#设置项目名称
SET(PROJECT_NAME OpenCV_test)
#这里添加刚刚安装的opencv的目录,需要包含OpenCVConfig.cmake
SET(OpenCV_DIR /usr/local/opencv/lib64/cmake/opencv4)
#建立项目
PROJECT(${PROJECT_NAME})
#寻找OpenCV库
FIND_PACKAGE(OpenCV REQUIRED)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#打印调试信息
MESSAGE(STATUS "Project: ${PROJECT_NAME}")
MESSAGE(STATUS "OpenCV library status:")
MESSAGE(STATUS "    version: ${OpenCV_VERSION}")
MESSAGE(STATUS "    libraries: ${OpenCV_LIBS}")
MESSAGE(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

#添加-g 参数以支持带有gdb调试信息
set(CMAKE_CXX_FLAGS "-g")
set(CMAKE_C_FLAGS "-g")

#获取代码,在项目中,将所有代码都放在src文件夹中
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
MESSAGE(STATUS "Src file: ${DIR_SRCS}")
#编译可执行程序
ADD_EXECUTABLE(${PROJECT_NAME} ${DIR_SRCS})
#添加链接库
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})

(5)launch.json
调试配置文件,用于指定调试用的环境等信息

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "program-debug",
            "type": "cppdbg",
            "request": "launch",
            //待调试的程序
            "program": "${workspaceFolder}/OpenCV_test",
            "args": [],
            "stopAtEntry": false,
            //工作目录,用于寻找文件及图片等
            "cwd": "${workspaceFolder}",
            //配置的环境变量,相当于使用一次export命令,这里没有实际使用
            "environment": [
                {"name": "workdir", "value": "workspace"}
            ],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
                {
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            //每次进行调试前先进行编译操作:
            "preLaunchTask": "build"
        }
    ]
}

对于"miDebuggerPath",需要安装调试工具gdb,并填写调试路径:

安装调试工具:

yum install gdb

安装完后可以使用 which gdb命令给出gdb的安装路径。

查看gdb安装的所在路径:

rpm -ql gdb

上述工作准备完后,有:

centos官网下载安装vscode_OpenCV

2.断点调试

在cpp文件内加断点:

centos官网下载安装vscode_ide_02


点选调试按钮,选择

centos官网下载安装vscode_ide_03


centos官网下载安装vscode_vscode_04


选择上图蓝色选项,执行编译并调试。

centos官网下载安装vscode_centos官网下载安装vscode_05


断点进入成功。