本文地址:http://blog.csdn.net/mounty_fsc/article/details/51092967
1 简介:
Ubuntu环境下搭建带Caffe环境。在使用Python接口时候,主要代码来源于动态链接库_caffe.so,本文介绍如果在从Python中调试执行代码Python接口,然后在Eclipse中调试动态该链接库_caffe.so.
2 动机:
在用Python接口调用Caffe接口时候,常常希望跟踪程序执行步骤,并查看变量情况等,故而调试动态链接库_caffe.so
3 相关环境:
Ubuntu,Eclipse IDE for C/C++ Developers,Anaconda,Spyder,Caffe
4 相关知识:
_caffe.so的源代码在相同路径下带_caffe.cpp中,在调试_caffe.so前,先搭建好Eclipse调试Caffe C++代码带环境,(Caffe,Lenet5)Eclipse单步调试(一)
5 步骤:
提前准备:
Eclipse导入Caffe项目,找到python/caffe/_caffe.cpp
配置调试信息,注意,应选择如图所示带C/C++ Attach to Application,填写_caffe.so的路径
Python处调试代码为,调试语句为
caffe.set_mode_gpu()
caffe_root = '/home/mounty/caffe-master/' import sys sys.path.insert(0, caffe_root + 'python') import caffe import os os.chdir(caffe_root) caffe.set_device(0) caffe.set_mode_gpu() print 'over'
开始调试:
以root方式启动Eclipse,sudo ./eclipse 。否则将可能出现问题
在Spyder中启动调试,如图,在第10行处设好断点,然后让Python运行到此处。此时Python已经加载_caffe.so到内存中了。
找到5中Python程序的进程id,如图,一般来说pid是最大的那些进程。
在_caffe.cpp中对应带函数中设置好断点,启动步骤2中的配置,按Debug运行。此时弹出选择附加进程id的对话框。根据pid选择正确带进程。
在Spyder中Ctrl+F10进行运行进程(此时可能看不到任何效果,这是正常的)
回到Eclipse下面按F8继续运行程序,然后程序将在断点处挂起,可以调试了~
注意:
- Caffe应该是Debug编译带
- root打开Eclipse:sudo ./eclipse