如何使用 VS Code C++ 扩展的additionalSOLibSearchPath 启动配置属性?它接受全局模式吗?

问题描述 投票:0回答:1

我正在编写一个有两部分的代码,一个是共享库,另一个不是(并且包含主函数)。

当我想启动VSC调试器时,主程序找不到

myProject.so
文件。

我尝试在

.vscode/launch.json
配置中添加路径,如下所示:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/example/bin/debug/a.out",
            "additionalSOLibSearchPath": "${workspaceFolder}/lib/**",
            // ...
        }
    ]
}

但从官方文档看来,

additionalSoLibSearchPath
设置仅适用于Windows,而没有明确或直接提及。我们可以猜到,因为这几个例子只使用了 Window 的路径。

如何在 Linux 上执行此操作?

visual-studio-code gdb
1个回答
0
投票

您链接的文档非常清楚地说“用于GDB或LLDB”,所以我不相信这只是Windows的事情。事实上,考虑到这个名称(“SO”代表“共享对象”,而 Windows 通常使用术语“DLL”),如果它是 UNIX 独有的东西,我不会感到惊讶。文档没有提到要支持的 glob 星号,因此我建议您尝试明确说明所需的所有路径(根据文档,用分号分隔)而不使用 glob 星号。

所以你的第一个问题是“你使用的是 GDB 还是 LLDB?或者你是否使用 Visual Studio 之类的其他东西作为调试的‘后端’?”

另请参阅 https://code.visualstudio.com/docs/cpp/cpp-debug#_additional-symbols,其中指出:

如果调试器可以在其他目录中找到符号文件(例如,Visual Studio Windows 调试器的

.pdb
文件),则可以通过添加
additionalSOLibSearchPath
(对于 GDB 或 LLDB)或
symbolSearchPath
(对于 Visual Studio Windows 调试器)。

目前远程调试显然存在局限性。请参阅https://github.com/microsoft/vscode-cpptools/issues/8344

如果您对 C++ 扩展背后使用的 GDB 功能感到好奇,Andrew Wang 对此进行了解释

additionalSOLibSearchPath
用于将
set solib-search-path [Directories]
发送到GDB。

© www.soinside.com 2019 - 2024. All rights reserved.