Maison  >  Article  >  outils de développement  >  Comment déboguer le vscode en une seule étape

Comment déboguer le vscode en une seule étape

藏色散人
藏色散人original
2019-12-24 10:38:096321parcourir

Comment déboguer le vscode en une seule étape

Comment déboguer le vscode en une seule étape ?

Débogage vscode en une seule étape

Configuration VScode

Touches de raccourci

Ctrl + `  打开默认终端;
Ctrl + Shift + `  新建新的终端;
Ctrl + Shift + Y  打开调试控制台,然后再自行切换终端选项;
ps: ` 在键盘数字1的左边。

Recommandations associées : Tutoriel d'introduction à vscode

1. Installer clang

sudo apt-get install clang

2 VScodeDebug

lien de référence du plug-in Mais configuration de projet à grande échelle. est encore relativement compliqué. De nombreux tutoriels concernent la configuration d'un seul fichier cpp. Voici un enregistrement du débogage général de cpp de la configuration vscode :

1. && cd build && cmake.. && make (cette étape peut être complétée dans le terminal de vscode ou dans le terminal système, cela n'a pas d'importance. Mais pour sauvegarder l'interface, il est préférable de la compléter dans vscode) générer le fichier exécutable, puis utilisez vscode pour effectuer une seule étape.

2. Configurez le fichier de lancement : cliquez sur l'icône de débogage (Ctrl+Shift+D) dans la barre latérale gauche, puis cliquez sur l'icône d'engrenage configurer ci-dessus et cliquez sur configurer par défaut pour générer automatiquement le fichier launch.json. Entrez dans l'interface du fichier de lancement et vous pouvez voir que le chemin est .vscode/launch.json/Launch Targets/(gbd)Launch.

3. Modifiez le fichier de lancement :

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/app/testMonoBA", //此路径更改为最终生成的可执行文件路径以及可执行文件名称
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole":false,//将此处的true改为false,不然他会调用系统的终端进行现实
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
        }
    ]
}

4. Modifiez le fichier CMakeLists.txt :

cmake_minimum_required(VERSION 2.8)
project(slam_demo)
set(DEFAULT_BUILD_TYPE "Debug")  #修改处,讲release改为debug,也可以直接删除
if (NOT CMAKE_BUILD_TYPE)
    message(STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.")
    set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE
            STRING "Choose the type of build." FORCE)
    # Set the possible values of build type for cmake-gui
    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
            "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif ()
set(CMAKE_CXX_FLAGS "-std=c++11")
FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
    message("OPENMP FOUND")
    ADD_DEFINITIONS(-DUSE_OPENMP)
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
#set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -Wno-reorder" CACHE STRING "" FORCE)
#set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -DNDEBUG -Wno-reorder -O2" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "{CMAKE_CXX_FLAGS} -o0 -ggbd")  #添加语句
add_compile_options(-g)   #添加语句
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
option(BUILD_APPS "Build APPs for slam course" YES)
option(BUILD_TESTS "Build test for slam course" No)
# third party libs
# eigen
find_package(Eigen REQUIRED)
include_directories(${EIGEN_INCLUDE_DIR})
# opencv
find_package(OpenCV 4 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
# glog
find_package(Glog REQUIRED)
include_directories(${GLOG_INCLUDE_DIRS})
# sophus
include_directories(${PROJECT_SOURCE_DIR}/thirdparty/Sophus)
include_directories(${PROJECT_SOURCE_DIR})
add_subdirectory(frontend)
add_subdirectory(backend)
add_subdirectory(utils)
if (BUILD_APPS)
    add_subdirectory(app)
endif ()
if (BUILD_TESTS)
    enable_testing()
    add_subdirectory(test)
endif ()

5. Après avoir terminé ce qui précède, recompilez, puis la colonne de débogage dans vscode ne sera plus grise et vous pourrez effectuer un débogage en une seule étape.

Comme le montre l'image :

3. Comment Cmake prend en charge le débogage gdb

SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
add_compile_options(-g)   #添加语句

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn