【问题标题】:How to debug underlying C++ library from Python interface?如何从 Python 接口调试底层 C++ 库?
【发布时间】:2020-12-03 18:14:19
【问题描述】:

我正在使用apollocaffeReinspect。 Apollocaffe 在 c++ 库中,而 Reinspect 在 python 中。从 apollocaffe 重新检查称为 apis。 我喜欢在 apollocaffe 中调试这些 api。从python代码中,我使用了

python -m pdb train.py

但是我不能从 apollocaffe 进入 api。 我喜欢cout << "test" << endl; in apollocaffe。但是没有任何东西打印到控制台。怎么调试c++代码,至少能打印就好了。

【问题讨论】:

    标签: python c++ gdb caffe pdb


    【解决方案1】:

    如果您有兴趣只调试 C++ 部分,您可以使用 Python 启动 GDB -

    gdb python
    b <C++ function to break at>
    run train.py
    

    当然,您需要使用调试信息编译 Caffe:将 -DDEBUG=1 传递给 cmake 选项以取消注释 Makefile.config 中的 DEBUG = 1 行。
    从 gdb 调试 Python 和 C++ 可能会更复杂,例如参见 this

    【讨论】:

    • 你试过标准的 cout / printf 吗?这些应该可以工作。
    • 您使用的 C++ 库是否包含调试标志?
    • @SheikhFaisalMiskhat 你说得对,谢谢。相应地编辑了答案。
    • @SheikhFaisalMiskhat 在 makefile.config 中是,DEBUG := 1 未注释。
    • @rursw1 是的,我用过 cout。但不打印到控制台
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多