vscodegdb(vscodegdb调试找不到文件)

本篇文章给大家谈谈vscodegdb,以及vscodegdb调试找不到文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

VSCode 调试

更全面的信息可以参考官方 调试手册 ,以下记录我用 VSCode 调试的一些经验。

想要在 VSCode 里调试,需要配置两个文件 tasks.json 和 launch.json 。

这两个桐困游文件按 F5 后会自动在 .vscode 目录下生成。

一般默认生成的 tasks.json 文件如下:

我们需要关注的选项有:

深入理解 tasks.json 文件的作用与 "command" 选项的用法,我们就能灵活地配置构建工程。

tasks.json 文件是用来构建工程的,当我们按 F5 进行调试时,VSCode 首先会执行 tasks.json 文件里 "command" 选项后的命尺基令,并传入 "args" 参数,这样整个工程就被重新编译链接一遍了。

以 hello.c 文件和上述 tasks.json 为例,按 F5 进行调试时,最终会在命令行执行下述命令构建工程:

当然,如果一个工程有多个文件,"command" 就不能是简单的 gcc 了,需要根据实际的构建系统选择。

如果构建系统使用的是 Makefile ,那我们可以配置

这样在构建项目时就会使用命令

这跟我们平时使用 make 构建项目是一致的。

又比如配置 Zephyr 环境,

这样在构建项目时相当于执行命令

launch.json 文件用于配置调试环境。一般默认生成的文件如下:

我们需要关注的选项有:

VSCode 预定义了一些变量,可以在 Variables Reference 查看意思。

有时候我们的程序需要访问硬件资源,这一般需要 root 权限,而 VSCode 一般是在用户权限下启动的,这就需要特殊配置 VSCode 才能调试程序。

下面介绍如何利用 VSCode 以 root 权限调试程序。

首先需要注意到 launch.json 文件里的 "miDebuggerPath" 这个选项,它是调试器的路径,如果这个调试器可以以 root 权限运行,那么就达局销成了我们的目的了。

在 /home/user_name 目录下创建文件 gdb,user_name 需要替换为实际的用户名。

然后编辑该文件 vim gdb ,加入下述内容:

给 gdb 添加执行权限,

在修改 "miDebuggerPath" 成为

即可。这样我们就可以在 VSCode 里以 root 权限调试程序了,只不过每次都需要输入密码,因为有一个 sudo 过程。

为了解决这个麻烦,我又在网上找到了方法,将 /home/user_name/gdb 加入 sudo 的免密认证即可。

输入

编辑 /etc/sudoers 文件,修改成下述内容即可,

其中 jackis 是我的用户名,需要根据实际用户名替换。

NOPASSWD: 后的命令 sudo 时都不需要密码。退出 Shell,再重新打开一个命令行界面,输入 sudo apt update ,会发现没有提示输入密码了。

参考:

How to debug programs with “sudo” in VSCODE

How to Run sudo Commands Without Password

[img]

vscode烧录c++后无反应

以以下代码为例,具体问题就是每次修改代码之后运行发现都没有生效,比如第一次编译运行打印了“Hello”,我在添加新语句后运行程序发现修改并未生效带首,网上找解决方法大多是下面这种:

点击左下角设置标志图 - 设置,出来了设置相关的东西,搜索 files.autoSave 第一种:把"files.autoSave":“off” 修改成 “files.autoSave”:"onFocusChange

#includeiostream

using namespace std;

int main(){

cout"Hello"endl;

}

1

2

3

4

5

1

2

3

4

5

我尝试这种方法并未起作用,最后经过查看官方文档等等对比C++环境的配置发现是在配置launch.json文件时点击add configuration时添加的配置少了下面句语句,蠢凯数在添加以后就成功了。

这里解释一下launch.json 文件的作用,launch.json文件是Vscode关于代码调试的配置文件,在这里面配置了gdb.exe调试孙缓程序的运行,下面是官方文档的一些信息:

VsCode 执行 debug(lldb/gdb) 命令

在使用其它 IDE 调试的时候,有时候仅仅使用 IDE 提供的调试按钮不能满足我神激尘们的需求,这时候我们会直接在游禅 IDE 提供的 Console 中输入 LLDB/GDB 指令,铅闷进行细粒度的控制。但是在使用 VsCode 开发 的时候,这个入口很难找到。分享给小伙伴们 : )

不像其他 IDE 可以直接输入 LLDB/GDB 指令,VsCode 需要使用 -exec 作为前缀来执行调试命令。例如想要打印变量 v ,输入 -exec p v 就可以执行 LLDB/GDB 的 p v 指令了。

vscode运行一直显示语法建立gdb连接是怎么回事

运行失败。vscode运行调试时袭蚂代码拍贺埋路径中存在中文名,导致出现显示语法建立gdb连接这样的问题。可以通过修改代码路径的中文名为英文路径拍举解决。

vscode + gdb 远程调试 linux 内核源码(附视频)

配套视频: vscode + gdb 远程调试 linux (EPOLL) 内核源码 。

前段时间才搭建起来 gdb 调试 Linux 内态烂宏核网络源码历链 ( 视频 ),但是 gdb 命令调试效率不高。帆册磨刀不误砍柴工,所以折腾一下 vscode ,使调试人性化一点。

要搭建 vscode + gdb 调试 Linux 内核环境,首选要搭建: gdb 调试 Linux 内核源码 ( 视频 ) ,然后再配置 vscode 进行测试调试。

vsc如何实现单步仿真功能

这里对vscode配置一般情况的cpp调试做个记录:

1、整体思路就是首先按照常规方法进行mkdir build cd build cmake.. make (这一步可以在空孝盯vscode的终端完成,也可以在系统终端完成,无所谓。但是为了少开点界面就在vscode里面完成比慎中较好)生成可执行文件,然后使用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", //此路径更改为最终生成的可执行文件路径以及可执行文件名称

"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、修改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 ()

完成以上步骤后,重新进行编译,然后vscode中的调试一栏下面的就不再是灰色,可以进行单步调试。

关于vscodegdb和vscodegdb调试找不到文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表