1 用gdb调试的好处
gdb是调试C++代码很有用的工具。在caffe上也是如此。用gdb调试caffe对于初学者来说可以更好的了解caffe的整个内部微观机制。并且是更有效理解caffe源码的好办法。
2 准备工作
只有将caffe源码以debug模式进行编译才能够进行调试,否则编译器会进行优化忽略debug infomation,这样无法设置断点进入源码内部。
具体来说,先在网上下载linux版本的caffe源码,如果是是win版本的建议采用VS进行调试也就没有必要用gdb调试了。linux版本的找到 Makefile.config这个文件。 找到文件中的‘DEBUG := 1’这一行,这一行默认情况是采用#注释掉的。现在我们将它反注释,然后再去编译源码:
make clean;
make all -j12;
到此为止,linux下的caffe源码就编译成功了。
3 边执行边debug
//用gdb调试
gdb ../../build/tools/caffe
//设置参数
set args train -solver lenet_solver.prototxt
//设置断点
b base_conv_layer.cpp:120
//run起来
r
.......
//如果到了断点的地方停下来,那么进入
s
//单步调试
n
//打印
p
//展示代码
l
//查看堆栈
bt
//查看某个堆栈详细信息
info 1
欢迎加入公众号了解更多:
