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

时间:2018-06-04 00:21:14

标签: bazel

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

目前,clean build返回以下输出

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_failures,但是对于分析阶段而不是执行短语。

到目前为止,我已经通过构建分析器运行了我的构建,并且无法收集任何洞察力。这是我构建的输出:

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

就我的命令而言,我正在运行

bazel build src:MY_TARGET --embed_label MY_LABEL --stamp --show_loading_progress

1 个答案:

答案 0 :(得分:1)

使用--host_jvm_debug启动标志在构建期间调试Bazel本身。

来自https://bazel.build/contributing.html

  

调试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 ++客户端,您可以从gdblldb运行它   你通常会。但是,如果要调试Java代码,则必须   使用以下命令附加到服务器:

     
      
  • 在命令之前使用调试选项--host_jvm_debug运行Bazel(例如bazel --batch --host_jvm_debug build //src:bazel)。

  •   
  • 将调试器附加到端口5005。例如,使用jdb,运行jdb -attach localhost:5005。在Eclipse中,使用遥控器   Java应用程序启动配置。

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