0

我是 Visual Studio Code 的新手。我按照本教程在 Visual Studio 代码中设置了 Bazel 构建配置(我使用的是 Windows 10)。

我创建了一个简单的 task.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build Example (Debug)",
      "type": "shell",
      "command": "bazel build //main:hello-world -c dbg",
      "windows": {
        "command": "bazel build //main:hello-world --experimental_enable_runfiles -c dbg"
      },
      "osx": {
        "command": "bazel build //main:hello-world -c dbg --spawn_strategy=standalone",
      },
      "group": {
        "kind": "build",
        "isDefault": true
      },
    }
  ]
}

和launch.json

{
    "version": "0.2.0",
    "configurations": [

      {
        "name": "Example",
        "type": "cppvsdbg",
        "request": "launch",
        "args": [],
        "stopAtEntry": false,
        "preLaunchTask": "Build Example (Debug)",
        "cwd": "${workspaceFolder}/bazel-out/x64_windows-dbg/bin/example.exe.runfiles/__main__/",
        "program": "${workspaceFolder}/bazel-out/x64_windows-dbg/bin/main/hello-world.exe",
        "externalConsole": false,
        "windows": {
        "type": "cppdbg",
         "type": "cppvsdbg",       
          "cwd": "${workspaceFolder}/bazel-out/x64_windows-dbg/bin",
          "program": "${workspaceFolder}/bazel-out/x64_windows-dbg/bin/main/hello-world.exe",
          },
        },
      }
    ]
  }

通过这种方式运行-> 开始调试,我能够在我的项目的 .cpp 代码中调试并停止到断点。

但是,我在这里读到,也可以使用 Starlark 调试器来调试 .bzl 文件和 Starlark 规则。根据同一页面中的说明,我应该能够“通过右键单击 Bazel 构建目标视图中的构建目标并选择“使用 Starlark 调试器构建目标”来执行此操作。不幸的是,我在我的 Bazel Build Targets 视图窗口中看不到这个选项: 在此处输入图像描述

Bazel 构建目标视图为空。如果我右键单击我看不到“使用 Starlark 调试器构建目标”选项。根据此链接,我应该能够在 Bazel Build Targets 视图下方看到我的目标。我想我在项目的配置中遗漏了一些东西,或者可能是一些 Starlack 扩展?谢谢你的帮助。

4

1 回答 1

1

Bazel 构建目标在 Windows 上也不适用于我。当我运行它时,扩展会输出一些关于 bazel 查询的错误。我最近在 Windows 上的时间不足以记住确切的消息,但我相信它与这个 open issue 中记录的内容类似。

看起来有一个拉取请求打开来解决它,但还没有人审查它。最好的办法可能是在检查您的扩展输出错误日志以查看它是否与其中记录的内容相匹配之后权衡其中一个。或者,您可以查看带有 Bazel 插件的 Clion,不过我还没有在 Windows 上尝试过。

于 2021-03-28T18:27:50.260 回答