为什么bazel在失败的生成操作中未在BEP中包含退出代码?

时间:2019-08-25 07:45:27

标签: bazel

我正在尝试开发淡褐色的工具,并尝试调查BEP。

在查看失败的操作时,似乎有一个退出代码字段,并且它包含在标准bazel输出的文本中,但不在BuildEvent原型中。

bazel的示例行:

  

错误:/ Users / endobson / proj / racket / yaspl2 / libraries / BUILD:703:1:无法构建文件库/resolved-imports-language-test_lib.o:YasplCompile库/ resolved-imports-language- test_lib.o失败(退出1)library_compiler失败:错误执行命令prebuilt / saved / library_compiler osx bazel-out / darwin-fastbuild / bin / libraries / resolved-imports-language-test_lib.o bazel-out / darwin-fastbuild / bin /libraries/resolved-imports-language-test_lib.sig ...(跳过了剩余的14个参数)

BEP中的示例输出:

event {
id {
  action_completed {
    primary_output: "bazel-out/darwin-fastbuild/bin/libraries/resolved-imports-language-test_lib.o"
    label: "//libraries:resolved-imports-language-test_lib"
    configuration {
      id: "a0d10a93870b235ffa7696ba8caa20c0"
    }
  }
}
action {
  stderr {
    name: "stderr"
    uri: "http://localhost:9100/cas/e19f91034d4477810ba05603b847e8072a8a1c0787da159ad535344693fb9995"
  }
  label: "//libraries:resolved-imports-language-test_lib"
  configuration {
    id: "a0d10a93870b235ffa7696ba8caa20c0"
  }
  type: "YasplCompile"
  command_line: "prebuilt/saved/library_compiler"
  command_line: "osx"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/resolved-imports-language-test_lib.o"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/resolved-imports-language-test_lib.sig"
  command_line: "libraries/resolved-imports-language-test.yaspl"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/module-name.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/module-signature.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/resolved-imports-language.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/source-language.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/top-level-name.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/variant-info.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/yunit.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/data/bytes.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/data/dict.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/data/either.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/data/indexed-set.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/data/list.sig"
  command_line: "bazel-out/darwin-fastbuild/bin/libraries/data/maybe.sig"
}
}

字段定义:https://github.com/bazelbuild/bazel/blob/4ba404f7ed0473df3f0effa016c107ef677464f6/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto#L448

代码似乎放在这里: https://github.com/bazelbuild/bazel/blob/08d691f40bbe8c6ed28a5ba22798f0cbee595fa7/src/main/java/com/google/devtools/build/lib/exec/SpawnExecException.java#L83

这可能是因为此代码将子进程的退出代码与可能的bazel退出代码进行了合并,因为ExitCode类似乎就是这样。

0 个答案:

没有答案