vscode如何單步調試

vscode如何單步調試

vscode如何單步調試?

vscode單步調試

VScode配置

0.快捷鍵

Ctrl?+?`??打開默認終端; Ctrl?+?Shift?+?`??新建新的終端; Ctrl?+?Shift?+?Y??打開調試控制臺,然后再自行切換終端選項; ps:?`?在鍵盤數(shù)字1的左邊。

相關推薦:vscode入門教程

1.安裝clang

sudo?apt-get?install?clang

2.VScodeDebug

插件參考鏈接但大型的工程配置還是比較復雜,很多教程都是針對單個cpp文件進行配置,這里對vscode配置一般情況的cpp調試做個記錄:

1.整體思路就是首先按照常規(guī)方法進行mkdir build && cd build && cmake.. && make (這一步可以在vscode的終端完成,也可以在系統(tǒng)終端完成,無所謂。但是為了少開點界面就在vscode里面完成比較好)生成可執(zhí)行文件,然后使用vscode進行單步。

2. 配置launch文件:點擊左側邊欄的Debug圖標(Ctrl+Shift+D),再點上方的齒輪圖標configure,點擊default configure就能自動生成launch.json文件。進入launch文件界面可以看到路徑為.vscode/launch.json/Launch Targets/(gbd)Launch.

3.修改launch文件:

{ ????"version":?"0.2.0", ????"configurations":?[ ????????{ ????????????"name":?"(gdb)?Launch", ????????????"type":?"cppdbg", ????????????"request":?"launch", ????????????"program":?"${workspaceFolder}/build/app/testMonoBA",?//此路徑更改為最終生成的可執(zhí)行文件路徑以及可執(zhí)行文件名稱 ????????????"args":?[], ????????????"stopAtEntry":?false, ????????????"cwd":?"${workspaceFolder}", ????????????"environment":?[], ????????????"externalConsole":false,//將此處的true改為false,不然他會調用系統(tǒng)的終端進行現(xiàn)實 ????????????"MIMode":?"gdb", ????????????"setupCommands":?[ ????????????????{ ????????????????????"description":?"Enable?pretty-printing?for?gdb", ????????????????????"text":?"-enable-pretty-printing", ????????????????????"ignoreFailures":?true ????????????????} ????????????], ????????} ????] }

4.修改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.完成以上后,重新進行編譯,然后vscode中的調試一欄下面的就不再式灰色可以進行單步調試。

如圖:

3.Cmake支持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)???#添加語句

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享