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
歡迎加入公衆號瞭解更多: