Bazel 如何在分析阶段分析未成功的构建?

Bazel 如何在分析阶段分析未成功的构建?,bazel,Bazel,我正在构建的bazel二进制文件在分析阶段未成功完成。我可以使用哪些标志和工具来调试分析期间失败的原因 当前,清理构建返回以下输出 ERROR: build interrupted INFO: Elapsed time: 57.819 s FAILED: Build did NOT complete successfully (133 packages loaded) ERROR: build interrupted INFO: Elapsed time: 55.514 s FAILED: B

我正在构建的bazel二进制文件在分析阶段未成功完成。我可以使用哪些标志和工具来调试分析期间失败的原因

当前,清理构建返回以下输出

ERROR: build interrupted
INFO: Elapsed time: 57.819 s
FAILED: Build did NOT complete successfully (133 packages loaded)
ERROR: build interrupted
INFO: Elapsed time: 55.514 s
FAILED: Build did NOT complete successfully (68 packages loaded)
如果我在失败完成后重试构建,我将收到以下输出

ERROR: build interrupted
INFO: Elapsed time: 57.819 s
FAILED: Build did NOT complete successfully (133 packages loaded)
ERROR: build interrupted
INFO: Elapsed time: 55.514 s
FAILED: Build did NOT complete successfully (68 packages loaded)
我可以使用什么标志来标识

  • 正在加载哪些包
  • 生成在哪个包上被中断
  • 中断是来自超时还是来自外部进程
本质上,类似于--verbose_失败,但用于分析阶段而不是执行阶段

到目前为止,我已经通过BuildProfiler运行了我的构建,还没有收集到任何洞察。以下是我的构建的输出:

WARNING: This information is intended for consumption by Blaze developers only, and may change at any time.  Script against it at your own risk
INFO: Loading /<>/result
INFO: bazel profile for <> at Mon Jun 04 00:10:11 GMT 2018, build ID: <>, 49405 record(s)
INFO: Aggregating task statistics

=== PHASE SUMMARY INFORMATION ===

Total launch phase time         9.00 ms    0.02%
Total init phase time           91.0 ms    0.16%
Total loading phase time        1.345 s    2.30%
Total analysis phase time      57.063 s   97.53%
Total run time                 58.508 s  100.00%

=== INIT PHASE INFORMATION ===

Total init phase time                    91.0 ms

Total time (across all threads) spent on:
              Type    Total    Count     Average

=== LOADING PHASE INFORMATION ===

Total loading phase time                 1.345 s

Total time (across all threads) spent on:
              Type    Total    Count     Average
    CREATE_PACKAGE    0.67%        9     3.55 ms
          VFS_STAT    0.69%      605     0.05 ms
           VFS_DIR    0.96%      255     0.18 ms
          VFS_OPEN    2.02%        8     12.1 ms
          VFS_READ    0.00%        5     0.01 ms
          VFS_GLOB   23.74%     1220     0.93 ms
     SKYFRAME_EVAL   24.44%        3      389 ms
       SKYFUNCTION   36.95%     8443     0.21 ms
     SKYLARK_LEXER    0.19%       31     0.29 ms
    SKYLARK_PARSER    0.68%       31     1.04 ms
   SKYLARK_USER_FN    0.03%        5     0.27 ms
SKYLARK_BUILTIN_FN    5.91%      349     0.81 ms

=== ANALYSIS PHASE INFORMATION ===

Total analysis phase time               57.063 s

Total time (across all threads) spent on:
              Type    Total    Count     Average
    CREATE_PACKAGE    0.30%      138     3.96 ms
          VFS_STAT    0.05%     2381     0.03 ms
           VFS_DIR    0.19%     1020     0.35 ms
          VFS_OPEN    0.04%      128     0.61 ms
          VFS_READ    0.00%      128     0.01 ms
          VFS_GLOB    0.92%     3763     0.45 ms
     SKYFRAME_EVAL   31.13%        1    57.037 s
       SKYFUNCTION   65.21%    32328     3.70 ms
     SKYLARK_LEXER    0.01%      147     0.10 ms
    SKYLARK_PARSER    0.03%      147     0.39 ms
   SKYLARK_USER_FN    0.20%      343     1.08 ms
使用
--host\u jvm\u debug
启动标志在构建期间调试Bazel本身

发件人:

调试Bazel

<>开始为C++和C++创建调试配置 您的
.bazelrc
中的Java具有以下功能:

build:debug -c dbg
build:debug --javacopt="-g"
build:debug --copt="-g"
build:debug --strip="never"
然后,您可以使用
Bazel build--config debug//src:Bazel
重新构建Bazel,并使用您喜欢的调试器开始调试

< >调试C++客户端时,可以从<代码> GDB <代码>或<代码> LLDB < /代码>运行 你通常会的。但是如果您想调试Java代码,您必须 使用以下命令连接到服务器:

build:debug -c dbg
build:debug --javacopt="-g"
build:debug --copt="-g"
build:debug --strip="never"
  • 在命令之前使用调试选项运行Bazel
    --host\u jvm\u debug
    (例如,
    Bazel--batch--host\u jvm\u debug build//src:Bazel

  • 将调试器连接到端口
    5005
    。例如,使用
    jdb
    运行
    jdb-attachlocalhost:5005
    。在Eclipse中,使用远程 Java应用程序启动配置

  • 我们的IntelliJ插件具有内置调试支持