Python 调试tensorflow单元测试
我找到了显示如何运行单元测试的 我认为通过调试单元测试可以更好地理解源代码 我可以在tensorflow python应用程序运行时调试源代码。但是我不知道如何调试单元测试。我是bazel和gdb调试新手。总结一下:Python 调试tensorflow单元测试,python,c++,machine-learning,gdb,tensorflow,Python,C++,Machine Learning,Gdb,Tensorflow,我找到了显示如何运行单元测试的 我认为通过调试单元测试可以更好地理解源代码 我可以在tensorflow python应用程序运行时调试源代码。但是我不知道如何调试单元测试。我是bazel和gdb调试新手。总结一下: 您必须确保首先构建测试二进制文件:通过运行bazel test或使用bazel build或使用bazel build-c dbg。最后一个提供完全可调试的可执行文件,在gdb回溯中提供行号 二进制文件与生成文件位于同一目录中(即,如果您有tensorflow/core/BUIL
- 您必须确保首先构建测试二进制文件:通过运行
或使用bazel test
或使用bazel build
。最后一个提供完全可调试的可执行文件,在gdb回溯中提供行号bazel build-c dbg
- 二进制文件与生成文件位于同一目录中(即,如果您有
,则二进制文件将位于tensorflow/core/BUILD
)bazel-bin/tensorflow/core
- 通过使用bazel查询,可以找到包含给定
文件的bazel名称。例如,对于.cc
您可以使用下面的命令找到目标名称为common\u shape\u fns\u test
//tensorflow/core:framework\u common\u shape\u fns\u test
每个“bazel测试”基本上都在
bazel bin
下运行相应的二进制文件,因此您可以在gdb@YaroslavBulatov谢谢,但是我找不到测试文件的位置。例如,在common_shape_fns_test.cc中,我搜索common_shape_fns_test.cc
字符串并在构建文件中找到它。然后我找不到任何提示。现在我知道我应该首先构建它:bazel build//tensorflow/core:framework\u common\u shape\u fns\u test
。然后我可以运行它:bazelbin/tensorflow/core/framework\u common\u shape\u fns\u test
fullname=$(bazel query tensorflow/core/framework/common_shape_fns_test.cc)
bazel query "attr('srcs', $fullname, ${fullname//:*/}:*)"