首页 > 解决方案 > 如何使用调试模式在 tensorflow 中构建一些数据包\

问题描述

遇到了想调试的问题,然后想构建一个调试版的tensorflow,使用如下命令: bazel build --compilation_mode=dbg -s //tensorflow/tools/pip_package:build_pip_package

但它会触发protobuf中的长期链接几乎一天,但仍未完成。

我的意图是构建 tensorflow 使用的其他带有调试模式的包,我可以配置 bazel 构建文件以单独获取一些调试包吗?

标签: debuggingtensorflowbazel

解决方案


要更好地理解问题,请尝试手动运行永无止境的操作:

  1. 开始调试构建,等待它卡在 protobuf 链接操作中
  2. 中断构建 (Ctrl+C)
  3. 使用标志再次运行构建-s,因此 Bazel 显示了它执行的命令行(您可以使用-s标志运行第 1 步,但是输出更多,并且更难找到正确的信息)
  4. 再次中断构建
  5. cd进入 by 命令显示的目录并设置环境变量
  6. 尝试运行失败的命令(您可能需要更改输出路径,因为它们有时不是用户可写的)并查看它是否仍然无法完成

您刚刚所做的是运行 Bazel 正在运行的相同命令并被卡住。如果命令也卡在此手动模式下,则错误可能与链接器有关(但我怀疑是这种情况)。但如果它成功了,那么问题就出在 Bazel 身上。


推荐阅读