用gdb调试tensorflow c++源码

最近在修改tensorflow源码,发现调试起来真的是特别麻烦。尤其是在c++端遇到一些段错误啥的,python这边抛出来的错误没有一点参考价值。

最后还是用gdb来完成跟踪调试。首先用bazel编译tensorflow的时候,需要加上-g的编译选项,具体代码如下:

bazel build –copt=-g -c dbg -c opt –config=cuda //tensorflow/tools/pip_package:build_pip_package

编译安装完之后,可以直接用gdb运行python程序:

gdb -ex r --args python filename.py [args]

然后就可以从gdb里面进入tensorflow了,如果需要单步调试,设置断点什么的,可以在gdb里面先ctrl+c,然后设置好断点,再直接r重新执行就可以了。如果发生段错误,也可以打印出很详细的backtrace.

    原文作者:yxd886
    原文地址: https://www.jianshu.com/p/8c5067bbf7b3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞