gpt4 book ai didi

python - 调试 TensorFlow 测试 : pdb or gdb?

转载 作者:太空狗 更新时间:2023-10-30 02:41:03 31 4
gpt4 key购买 nike

我正在调试来自 TensorFlow 的 decode_raw_op_test。测试文件是用 python 编写的,但是它执行来自底层 C++ 文件的代码。

使用 pdb,我可以调试 python 测试文件,但它无法识别 c++ 文件。有没有一种方法可以调试底层 C++ 代码?

(我尝试在 decode_raw_op_test 上使用 gdb,但它给出“文件不是可执行格式:无法识别文件格式”)

最佳答案

调试混合的 Python 和 C++ 程序非常棘手。不过,您可以使用 gdb 调试 TensorFlow 的 C++ 部分。有两种主要方法可以做到这一点:

  1. gdb 下运行 python,而不是测试脚本本身。假设您的测试脚本位于 bazel-bin/tensorflow/python/kernel_tests/decode_raw_op_test 中。您将运行以下命令:

    $ gdb python bazel-bin/tensorflow/python/kernel_tests/decode_raw_op_test
    (gdb) run

    请注意,gdb 对调试代码的 Python 部分没有很好的支持。我建议将您运行的测试用例缩小为单个简单测试,并在 TensorFlow C API 方法(例如 TF_Run)上设置断点,这是从 Python 到TensorFlow 中的 C++。

  2. gdb 附加到正在运行的进程。您可以使用 ps 获取 Python 测试的进程 ID,然后运行(其中 $PID 是进程 ID):

    $ gdb -p $PID

    您可能需要安排阻塞 Python 代码,以便有时间附加。调用 raw_input() 函数是执行此操作的简单方法。

关于python - 调试 TensorFlow 测试 : pdb or gdb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40889221/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com