首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调试问题- VSCode -配置JSON -程序路径丢失或无效

调试问题- VSCode -配置JSON -程序路径丢失或无效
EN

Stack Overflow用户
提问于 2022-02-12 18:01:20
回答 1查看 447关注 0票数 0

我很难让F5调试器正常工作。

我一直试图遵循微软的教程,让事情顺利进行,但在成功构建之后,调试过程从未真正按照其应有的方式进行。

当我使用Ctrl + Shift +B命令构建时,它成功地创建了一个main.exe文件,但我不能以一种可以同时工作的方式更改launch.json文件。

tasks.json将这个"-o","${fileDirname}\\${fileBasenameNoExtension}.exe"作为对象路径/名称时,'main.cpp‘被编译成main.exe

因此,最初,我曾尝试将launch.json设置为拥有program": ${fileDirname}\\${fileBasenameNoExtension}.exe。这将是整洁和有效的,匹配将产生的构建文件。

我知道这个错误:

接下来,我尝试将launch.json更改为以a.exe硬编码的方式运行。在VSCode的PS终端中,我运行了g++ .\main.cpp并生成了一个a.exe文件。它成功地允许F5调试,当我将launch.json更改为有"program": "${workspaceFolder}\\a.exe"时,在调试控制台中给出退出代码'0‘。

我也尝试使用${workspaceFolder}\\${fileBasenameNoExtension}.exe而没有运气。

对于我来说,任务中具有相同对象名的cwd的相同参数在启动时不能成功地运行调试,这在我看来是毫无逻辑意义的。

整个tasks.json:

代码语言:javascript
复制
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: cpp.exe build active file",
            "command": "C:\\msys64\\mingw64\\bin\\cpp.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "compiler: C:\\msys64\\mingw64\\bin\\cpp.exe"
        }
    ]
}

整个launch.json:

代码语言:javascript
复制
{
    "configurations": [
    {
        "name": "(gdb) Launch",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}\\a.exe",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${fileDirname}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            },
            {
                "description":  "Set Disassembly Flavor to Intel",
                "text": "-gdb-set disassembly-flavor intel",
                "ignoreFailures": true
            }
        ]
    }
    ]
}

有人能帮我看看吗?这太令人恼火了..。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2022-02-12 21:14:22

我解决了问题。希望也能帮助别人。

首先,我更新了launch.json选项的体系结构部分--与文件路径问题无关,但我想我要提一下。向"targetArchitecture": "x64"文件中添加tasks.json (如有必要则添加32位选项)。

==================================================================

解决方案:经过一番周旋之后,我发现tasks.json才是问题所在,而不是launch.json。在经历了大量的混乱之后,我休息了一下,回到了问题上,注意到任务正在运行cpp.exe来构建文件。出于好奇,我用g++.exe和voilà取代了它--它很管用。

因此,如果在F5中使用VSCode中的MinGW进行编译/调试有问题--请确保g++.exe正在编译。至少根据我有限的知识,如果您正在运行VSCode并使用MinGW进行构建/调试,这将解决问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71094494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档