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)。
我正在尝试为我的项目配置调试器。 问题来了。
项目文件夹结构可以这样简化:
- 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)。