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