Linux下如何使用qt和anjuta来单步调试caffe的代码

参考:
http://blog.csdn.net/xiaoyezi_1834/article/details/50724875

https://www.zhihu.com/question/27987666

自己苦于需要修改caffe代码和调试代码,找寻方法找了很久
-> 总结如下:qt creator/anjuta/gdb

如下都是博主亲身试验成功的例子,将成功的方法转载和借鉴于此,可以实现单步调试caffe代码


方法一:在Qt中调试caffe代码


1.QT creator-> file->open file or project ->  $caffe_root/CMakeLists.txt 文件 



revise the  CMake arguments: -DCMAKE_BUILD_TYPE = Debug
and the Build directory choose : /home/wenyangming/$caffe root




recommendation :  use $ cafferoot dir

Linux下如何使用qt和anjuta来单步调试caffe的代码_第1张图片
出现如下页面,或者 出现需要设置指定重新build的目录界面 一般只需要勾选Debug和Release两种模式即可,点击配置项目configure project,会自动弹出cmake界面,(此时默认为第一个勾选的模式的默认参数,如此处为debug模式)
点击run cmake 目的是为了check cmake的dependency和环境是否正确
Linux下如何使用qt和anjuta来单步调试caffe的代码_第2张图片
点击finish
然后在QT里面左下角选择debug模式,(如果刚才打开是没有在debug模式,可能需要再次执行cmake 注意-DCMAKE_BUILD_TYPE=Debug)然后点击锤子进行编译
编译通过后
Linux下如何使用qt和anjuta来单步调试caffe的代码_第3张图片


设置断点和命令 
Linux下如何使用qt和anjuta来单步调试caffe的代码_第4张图片
以mnist训练为例,编译完成后在左下角caffe-》debug-》run下选择 caffe.bin为执行程序,再在projects选项卡/Run里面配置
arguments:train --solver=/home/wenyangming/caffe/examples/mnist/lenet_solver.prototxt -> 与你的工作目录一致Working directory
means that you(./examples) .@caffe root dir  (separate with the build root/ the caffe will run on default direction

-> 相当于在gdb调试中的 set args 有兴趣可以去参考本博 另一篇通过gdb来实现调试
(此页面还可以根据需要改变工作目录)   -> 具体修改在projects中的method 可add选择并设置自己的build.

The folder which have the ".d" means you have successly built

Linux下如何使用qt和anjuta来单步调试caffe的代码_第5张图片

ATTENTION:

次编译程序的时候出现了“no executable specified”的错误而无法运行程序。解决办法:

在用QT creator打开project之前,删除CMakeLists.txt.user文件重新编译/RELOAD,然后运行程序,可以成功。


Linux下如何使用qt和anjuta来单步调试caffe的代码_第6张图片

方法二:

 QT creator->open project->import project->import existing project导入现有工程后也可以在qt中调试

类似anjuta的调试方式

----------------------Anjuta调试 ---------------------------------------

1、编译debug模式的Caffe

首先要先将Caffe编译成debug模式,即需要将Makefile.config中"DEBUG := 1"前面的注释去掉再进行重新编译,这样就能得到Caffe版本就能够调试

(注意如果使用qtcreator 需要设置debug参数为-DCMAKE_BUILD_TYPE=Debug 将工程重新在一处重新编译,而使用anjuta相当于gdb调试的改良版本)

2、安装IDE

要调试的话也需要一个IDE,经过这两天的摸索找到了一个比较满意的IDE:Anjuta。Anjuta在Ubuntu下的安装方法为:

sudo apt-get install anjuta

3、导入caffe

安装完后打开Anjuta,然后导入Caffe项目工程,具体步骤为:

(1)import an existing project


(2) import from folder 


(3)下拉选择caffe根目录,并点击打开,import。


 (4)可用插件,选择默认就好。



4、设置断点

然后打开需要调试的代码文件,使用设置断点按钮(菜单栏最后面一个红绿黄的按钮)进行断点设置。


5、配置程序参数

点击“运行 -> 程序参数”,以调试训练mnist为例:

(1)在Program一栏中,选择右边的打开按钮,然后选择文件夹caffe/build/tools/下的caffe可执行文件。

(2)对于Arguments一栏,
填入参数:train --solver=examples/mnist/lenet_solver.prototxt,然后点击“应用”


点击“运行 -> 程序参数”,以调试训练mnist为例:

(1)在Program一栏中,选择右边的打开按钮,然后选择文件夹caffe/build/tools/下的caffe可执行文件。

(2)对于Arguments一栏,填入

然后点击“应用”

6、开始调试

点击“运行 -> 调试程序”




使用调试快捷键:F5(单步跨入函数)、F6(单步跨过函数)、Shift+F5(单步跨出函数)进行调试。当然,也可以设置调试器命令的。

试Caffe代码的截图(左下方可以查看变量的值等,右下方是程序的运行结果)


你可能感兴趣的:(Caffe,Ubuntu)