
[英]How to configure Visual Studio Code to debug with cygwin, cmake and gcc
[英]How to debug a CUDA program built by cmake in VIsual Studio Code?
我正在尝试在 Ubuntu 20 中使用 VS CODE、CMake 调试测试程序。我主要参考了 CUDA 调试器文档: https ://docs.nvidia.com/nsight-visual-studio-code-edition/cuda-debugger /index.html 。 但是,我不确定如何在基于 CMake 的项目中编写正确的 launch.json。 这是我的 CMakeLists.txt
cmake_minimum_required(VERSION 3.2)
project(cudaDebug CXX CUDA)
find_package(CUDA REQUIRED)
add_executable(main main.cu)
这是我的 VS CODE 生成的 launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "CUDA C++: Launch",
"type": "cuda-gdb",
"request": "launch",
"program": "main.cu"
},
{
"name": "CUDA C++: Attach",
"type": "cuda-gdb",
"request": "attach"
}
]
}
当我按F5开始调试时,弹出错误信息:
main.cu: 346262241346234211351202243344270252346226207344273266346210226347233256345275225.
我认为您必须更改以下行:
"program": "main.cu"
至
"program": "${command:cmake.launchTargetPath}"
并在 VSCode 中选择可执行文件(通常在底行,您也可以在其中选择构建目标)。
也看看这里:
https://vector-of-bool.github.io/docs/vscode-cmake-tools/debugging.html
您可以尝试将您的 cmake 版本更新到 3.10 以上,不再需要使用find_package(CUDA)
这是 vscode 和 cmake 使用 cuda-gdb 的一个模板CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(your_project_name CUDA CXX C) # enable cuda language
set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)
set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_CUDA_FLAGS ${CMAKE_CUDA_FLAGS} "-g -G") # enable cuda-gdb
add_executable(${PROJECT_NAME})
target_sources(${PROJECT_NAME} PRIVATE your_source_files)
set_target_properties(${PROJECT_NAME} PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
tasks.json
{
"options": {
"cwd": "${workspaceFolder}/build"
},
"tasks": [
{
"label": "cmake",
"command":"cmake",
"args": ["-DCMAKE_BUILD_TYPE=Debug", ".."]
},
{
"label": "make",
"command":"make",
},
{
"label": "cmake build",
"dependsOn":[
"cmake",
"make"
],
}
],
"version": "2.0.0"
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "CUDA C++: Launch",
"type": "cuda-gdb",
"request": "launch",
"program": "${workspaceFolder}/build/your_executable_file",
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"preLaunchTask": "cmake build"
}
]
}
希望它可以帮助你:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.