【问题标题】:Debugging Vala in VSCode on Linux在 Linux 上的 VSCode 中调试 Vala
【发布时间】:2021-03-07 03:36:41
【问题描述】:

对于 Vala 和 VSCode 的新手来说,Vala 和 Visual Studio Code 如何协同工作真的没有很好的文档。

当尝试在命令行 (Ubuntu 20.04) 上使用 vala 项目时,构建就像运行 meson 和 ninja 一样简单。我正在寻找的是它如何映射到 VSCode。基本上,我如何将我的 vala 代码文件夹及其介子脚本集成到 vscode 的构建/调试系统中。

我尝试了市场上可用于 Vala 的扩展,并获得了语法高亮显示。除此之外,我正在寻找如何让 VSCode 运行介子和忍者脚本并进行调试。谢谢!
(尝试调试一些 GNOME 桌面应用)

【问题讨论】:

    标签: visual-studio-code gtk3 vala


    【解决方案1】:

    这不是一个确定的答案,但与 Meson 构建和调试器的集成可能仍在进行中。

    GNOME wiki 上有一个页面:Coding in Vala with Visual Studio Code。因此,如果有人有任何经验可以分享,那将是一个好地方。

    您应该尝试Vala language server。这不仅仅是语法高亮。

    Meson Tools VS Code 扩展看起来很有趣。 Meson 还提供了metadata in the build,如果有人想增强这些工具,可以使用它。

    Vala 使用 C 作为其中间语言,任何调试都使用 GDB 或 LLDB 等 C 调试器完成。 Vala 编译器在为开发编译时会在 C 中插入源代码行引用,因此调试器也会显示 Vala 源代码引用。这在上面引用的 GNOME Wiki 页面上有更详细的描述,但这确实需要在 Vala 编译器中进行一些整理。从 C 到 Vala 的符号解析比较麻烦,我相信目前还没有人提出可行的解决方案。

    【讨论】:

      【解决方案2】:

      根据我的经验,您可以尝试使用 VS Code + CodeLLDB 插件,它通常对我很有效。 步骤如下:

      1. 为 valac 添加 --debug 选项。这可以通过 meson.build 中的“add_project_arguments”来完成
      2. 为 LLDB 生成一个 launch.json。这可以通过 VS Code 的“运行和调试”中的“创建一个 launch.json 文件”来完成。 Create launch.json
      3. 它将在其中创建一个 .vscode 目录和一个 launch.json 文件。确保您已安装 CodeLLDB 插件。修改launch.json中的“configurations”,使文件中的“configurations”变成(<my program>需要改成你的可执行文件名)
      "configurations": [
              {
                  "name": "Launch",
                  "type": "lldb",
                  "request": "launch",
                  "program": "${workspaceFolder}/<my program>",
                  "args": ["-arg1", "-arg2"],
              }
          ]
      
      1. 然后就可以在 VS Code 中设置断点并开始调试了。 Debugging in VS Code

      【讨论】:

      • 不错的细节,谢谢分享。一点:Meson Build 中默认的build type optiondebug,我相信这会将--debug 添加到valac,而无需明确说明,因此无需将其添加到add_project_arguments。当您想要构建一个版本时,只需将 Meson 中的 buildtype 更改为 release 并且不包含调试信息
      • 谢谢!我刚刚了解了介子。
      猜你喜欢
      • 2016-02-05
      • 2017-12-03
      • 2022-07-12
      • 2023-01-09
      • 2022-12-15
      • 2023-03-20
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      相关资源
      最近更新 更多