vscode调试器配置:cwd

vscode debugger configuration: cwd

我正在尝试为我的项目配置调试器。 问题来了。

项目文件夹结构可以这样简化:

 - Project Root
     - X
     - Y
     - etc

我绝对需要在调试器配置中将 cwd 设置为 X,否则二进制文件不会 运行。如果我将它设置为 X,程序 运行s,调试器(某种程度上)工作:我看到调用堆栈和变量的值。但是,vscode 找不到带有代码的文件,我也看不到正在执行的行。 VSCode 也给我一个错误:

Unable to open 'file.cpp':
Unable to read file '/blahblah/cwd/Y/file.cpp'
Error: unable to resolve non-existing file.

因此调试器正确地使用 cwd 作为文件路径其余部分的前缀,但 Y 并未嵌套到 X 中,它实际上位于同一根目录中。

同样,我绝对需要从 X 目录调用二进制文件。在这种情况下,有什么方法可以告诉 vscode 代码文件的正确路径吗?

所以这对我有用:

// added this to launch.json
"sourceFileMap: {
    "proc/self/cwd" : "{workspaceFolder}"
}

来自 VSCode 文档:

sourceFileMap: This allows mapping of the compile-time paths for source to local source locations. It is an object of key/value pairs and will resolve the first string-matched path. (example: "sourceFileMap": { "/mnt/c": "c:\" } will map any path returned by the debugger that begins with /mnt/c and convert it to c:\. You can have multiple mappings in the object but they will be handled in the order provided.)

我的问题是我需要进程到 运行 的目录与源文件所在的目录不匹配。在 vscode 给我的错误消息中,我看到了它用来尝试查找源文件的路径 ("/proc/self/cwd")。所以我将此路径映射到我实际需要的路径(在我的例子中只是 workspaceFolder)。