13018.CUDA工程配置GDB调试

1 工程CMakeLists.txt

cmake_minimum_required(VERSION 3.8) # 根据你的CMake版本调整
# 设置项目名称
project(ez_compower_upward VERSION 0.1  LANGUAGES CXX CUDA)

find_package(CUDA REQUIRED)
# 查找并链接需要的库,例如对于标准库之外的依赖
find_package(Threads REQUIRED) # 例如,如果需要链接线程库


# 设置C++标准,这里使用C++14
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")



include_directories(${CMAKE_SOURCE_DIR}/config)
include_directories(${CMAKE_SOURCE_DIR}/interfaces)
include_directories(${CMAKE_SOURCE_DIR}/algorithm/point_process/include)
include_directories(${CMAKE_SOURCE_DIR}/algorithm/pixel_process/include)
include_directories(/usr/local/cuda/include)
# include_directories(${CMAKE_SOURCE_DIR}/interfaces/pixel_process/include)

# 指定项目源文件
set(SOURCE_FILES
    main.cpp
    #${CMAKE_SOURCE_DIR}/algorithm/point_process/src/point_read.cpp
    ...
    ${CMAKE_SOURCE_DIR}/algorithm/pixel_process/src/pixel_algo.cu
)

message(STATUS "CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}")
foreach(file ${SOURCE_FILES})
  message(STATUS "SOURCE_FILE: ${file}")
endforeach()

# 添加可执行文件目标
CUDA_ADD_EXECUTABLE(ez_compower_app 
    ${SOURCE_FILES}
)

target_include_directories(ez_compower_app PRIVATE /usr/local/cuda/include)

# 如果你的项目需要链接其他库,可以在这里添加,例如
target_link_libraries(ez_compower_app pthread pcap ${CUDA_LIBRARIES}) # 对应于Linux下的线程库

# 或者针对特定库的链接命令,比如
# target_link_libraries(ez_compower_upward SomeThirdPartyLib)

# 可选:设置编译选项,比如警告等级
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -g")
endif()

# 如果你的项目包含测试,可以使用CTest
enable_testing()
# 添加测试用例的示例
# add_test(NAME MyTest COMMAND MyTest)
# include(CTest)

2 vscode配置launch.json,settings.json,tasks.json文件

  • launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) CUDA Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/ez_compower_app", // 调试程序的完整路径
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}", // 当前工作目录
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build", // 构建任务,确保与tasks.json中定义的task label名称匹配
            "miDebuggerPath": "/usr/bin/gdb", // gdb的完整路径
            "internalConsoleOptions": "neverOpen"
        }
    ]
}
  • tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "make",
            "args": [], // 如果你的Makefile中有默认目标,这里可以不填写参数
            "options": {
                "cwd": "${workspaceFolder}/build" // 这里指定了make应该在哪个目录下执行
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared",
                "showReuseMessage": true,
                "clear": false
            },
            "problemMatcher": []
        }
    ]
}
  • setting.json
{
    "files.associations": {
        "cctype": "cpp",
        "clocale": "cpp",
        "cmath": "cpp",
        "csignal": "cpp",
        "cstdarg": "cpp",
        "cstddef": "cpp",
        "cstdio": "cpp",
        "cstdlib": "cpp",
        "cstring": "cpp",
        "ctime": "cpp",
        "cwchar": "cpp",
        "cwctype": "cpp",
        "array": "cpp",
        "atomic": "cpp",
        "strstream": "cpp",
        "*.tcc": "cpp",
        "bitset": "cpp",
        "chrono": "cpp",
        "complex": "cpp",
        "cstdint": "cpp",
        "deque": "cpp",
        "list": "cpp",
        "unordered_map": "cpp",
        "vector": "cpp",
        "exception": "cpp",
        "algorithm": "cpp",
        "functional": "cpp",
        "ratio": "cpp",
        "system_error": "cpp",
        "tuple": "cpp",
        "type_traits": "cpp",
        "fstream": "cpp",
        "initializer_list": "cpp",
        "iomanip": "cpp",
        "iosfwd": "cpp",
        "iostream": "cpp",
        "istream": "cpp",
        "limits": "cpp",
        "memory": "cpp",
        "mutex": "cpp",
        "new": "cpp",
        "ostream": "cpp",
        "numeric": "cpp",
        "sstream": "cpp",
        "stdexcept": "cpp",
        "streambuf": "cpp",
        "thread": "cpp",
        "cfenv": "cpp",
        "cinttypes": "cpp",
        "utility": "cpp",
        "typeindex": "cpp",
        "typeinfo": "cpp",
        "valarray": "cpp",
        "*.ipp": "cpp",
        "string": "cpp",
        "bit": "cpp",
        "codecvt": "cpp",
        "condition_variable": "cpp",
        "map": "cpp",
        "iterator": "cpp",
        "memory_resource": "cpp",
        "optional": "cpp",
        "random": "cpp",
        "string_view": "cpp",
        "__nullptr": "cpp"
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangshui516

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值