Debugging vs代码:尝试调试时未找到文件

Debugging vs代码:尝试调试时未找到文件,debugging,visual-studio-code,gdb,cygwin,Debugging,Visual Studio Code,Gdb,Cygwin,我正在尝试调试main.cpp文件,该文件位于一个文件夹中,该文件夹的文件名中有空格:“Jim and the摩天大楼” 错误消息如下: 无法打开“Jim”:找不到文件 它还为我提供了创建这个“Jim”文件的选项 只有当我将文件重命名为“JimAndTheSkyscrapers”以便它没有任何空格时,调试过程才能工作 我在launch.json和c_cpp_properties.json文件中引用路径的方式是使用环境变量:${workspaceFolder} 作为调试器,我使用cygwin的gd

我正在尝试调试main.cpp文件,该文件位于一个文件夹中,该文件夹的文件名中有空格:“Jim and the摩天大楼”

错误消息如下:

无法打开“Jim”:找不到文件

它还为我提供了创建这个“Jim”文件的选项

只有当我将文件重命名为“JimAndTheSkyscrapers”以便它没有任何空格时,调试过程才能工作

我在launch.json和c_cpp_properties.json文件中引用路径的方式是使用环境变量:${workspaceFolder}

作为调试器,我使用cygwin的gdb

我认为问题在于:要么调试器以不允许空格的方式解析文件路径,要么是vs代码问题。知道它是哪一个会有很大帮助

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [
                {"name": "OUTPUT_PATH", "value": "results.txt"}
            ],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/cygwin64/bin/gdb.exe",
            "preLaunchTask": "build",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
c_cpp_properties.json:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx64/x64/cl.exe",
            "cStandard": "c11",
            "cppStandard": "c++14",
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}

空间通常是一个分隔符,所以你要么逃逸它,要么它不起作用。请尝试“吉姆与摩天大楼”或“吉姆与摩天大楼”@matzeri谢谢您的输入。问题是,每次移动文件夹或重命名路径中的文件夹时,我都必须手动指定项目的路径。这就是为什么${workspaceFolder}环境变量非常有用的原因,因为它会自动使用包含文件夹的名称,因此您不必在删除或重命名时更改任何内容。请尝试“${workspaceFolder}”@matzeri抱歉造成混淆。我编辑了这篇文章,你可以看到我使用了“${workspaceFolder}”。@matzeri你认为问题出在“${workspaceFolder}/a.exe”上吗?我试着用双反斜杠而不是正斜杠,但从我记忆中看不起作用。也许我会再试一次,但我认为这不是问题所在。