在 Linux 上的 VSCode 中调试 Vala

问题描述

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

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

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

解决方法

这不是一个确定的答案,但与 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 的符号解析比较麻烦,我相信目前还没有人想出可行的解决方案。

,

根据我的经验,您可以尝试 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中的“配置”,使文件中的“配置”变成(<my program>需要改成你的可执行文件名)
"configurations": [
        {
            "name": "Launch","type": "lldb","request": "launch","program": "${workspaceFolder}/<my program>","args": ["-arg1","-arg2"],}
    ]
  1. 然后您可以在 VS Code 中设置断点并开始调试。 Debugging in VS Code

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...