CMakeTools for VS Code未使用我的启动配置

ryhaxcpt  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(219)

我试图创建一个项目,使用VS Code和CMake对Tiva C系列板进行编程。
到目前为止,我已经设法使它有点工作,因为它的建设,闪光,甚至让我调试它。然而,它是基于粗略的launch.jsontasks.json文件,我对它不满意。因此,现在我正尝试使用CMakeTools扩展使其正常工作,以便通过扩展提供的底部导航栏上的按钮启动调试器。问题是,它似乎没有使用我的launch.json文件,所以当它启动时,它使用了错误的调试器路径和可执行文件(launch.json文件正确地指向了它们)。
我的项目目前看起来像这样:my project structure
它基本上由一个包含我的源代码的src文件夹、一个CMakeLists.txt文件、一个包含工具链配置的cmake文件夹、一个用于Tiva的链接器文件、一个包含launch.jsontasks.json文件的.vscode文件夹以及CMake生成的构建输出目录组成。
到目前为止,如果我单击CMakeTools扩展导航栏上的build命令,它将正确构建并使用CMake中的自定义目标命令 Flink 到Tiva。但是当我点击调试按钮时,它不能正常启动,而是给我这个output
这是我的launch.json文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debugger Tiva",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/projeto.axf",
            "targetArchitecture": "ARM",
            "args": [],
            "stopAtEntry": true,    
            "cwd": "${workspaceFolder}",
            "environment": [],
            "MIMode": "gdb",
            "miDebuggerServerAddress": "localhost:3333",
            "externalConsole": false,
            "miDebuggerPath": "C:/ProgramData/chocolatey/lib/gcc-arm-embedded/tools/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-gdb.exe",
            "preLaunchTask": "Launch OpenOCD",
            "postDebugTask": "Kill OpenOCD"
        }
    ]
}

正如在这个launch.json中所看到的,我想从其中获取调试器的路径是C:/ProgramData/chocolatey/lib/gcc-arm-embedded/tools/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-gdb.exe,但在输出的图片中,它显示它试图使用C:/ProgramData/chocolatey/bin/arm-none-eabi-gdb.exe(我猜它确实工作,所以它很好)。最大的问题显然是它正在寻找作为C:/Users/Lucas Yukio/Documents/Projetos Tiva/teste display/build/projeto的启动程序,而.axf在最后缺少扩展。
当我使用f5键盘快捷键启动调试器时,它会正常启动,所以我最好的想法是扩展没有使用我制作的launch.json文件。对吗?如果是这样,我该怎么解决?

dxxyhpgq

dxxyhpgq1#

任务栏上这个非常小的“Debug button”(bug图标)来自vscode-cmake-tools扩展,描述为here,它只提供“快速调试”功能,如果你想使用它而不是按F5键,你需要自定义“launch.json”文件。文档建议使用

"program": "${command:cmake.launchTargetPath}",

使可执行文件对vscode-cmake-tools扩展可见。
我建议忍受VSCode插件的有限功能,这些插件是以“做一件事,但要做好”的哲学制作的。使用vscode-cmake-tools插件进行构建,并使用另一个插件进行调试。不知道它是否支持Tiva微控制器,但我推荐你cortex-debug插件

相关问题