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代码
revise the CMake arguments: -DCMAKE_BUILD_TYPE = Debug
and the Build directory choose : /home/wenyangming/$caffe root
recommendation : use $ cafferoot dir
出现如下页面,或者出现需要设置指定重新build的目录界面 一般只需要勾选Debug和Release两种模式即可,点击配置项目configure project,会自动弹出cmake界面,(此时默认为第一个勾选的模式的默认参数,如此处为debug模式)
然后在QT里面左下角选择debug模式,(如果刚才打开是没有在debug模式,可能需要再次执行cmake 注意-DCMAKE_BUILD_TYPE=Debug)然后点击锤子进行编译
设置断点和命令
以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<see the following snapshot>)
-> 相当于在gdb调试中的 set args 有兴趣可以去参考本博另一篇通过gdb来实现调试
(此页面还可以根据需要改变工作目录) -> 具体修改在projects中的method 可add选择并设置自己的build.
The folder which have the ".d" means you have successly built
ATTENTION:
次编译程序的时候出现了“no executable specified”的错误而无法运行程序。解决办法:
在用QT creator打开project之前,删除CMakeLists.txt.user文件重新编译/RELOAD,然后运行程序,可以成功。
方法二:
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代码的截图(左下方可以查看变量的值等,右下方是程序的运行结果)
Linux下如何使用qt和anjuta来单步调试caffe的代码相关推荐
- linux下打包C++ Qt可执行程序出现的问题总结
linux下打包C++ Qt可执行程序 零.问题描述 一.出现的问题和解决方法 二.通过配置脚本设置环境变量 零.问题描述 最近在搞linux下打包程序,由于使用了Qt相关的函数接口,出现了很多Qt相 ...
- linux程序运行段错误,Linux下的段错误产生的原因及调试方法
Linux下的段错误产生的原因及调试方法 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来 说,段错误就是指访问的内存超出 ...
- Linux下不使用qt自带sleep,Linux下Qt多线程编程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 作者:武汉华嵌嵌入式培训中心 技术部 以下和大家分享Linux平台下Qt两种多线程编程的方式: 1.使用Linux平台下的线程函数.以下是给出的代码片段: ...
- Hello Qt(在Linux下编写运行Qt程序)
From: http://www.yafeilinux.com/?p=763 <一>Hello Qt小试牛刀! 说明:我们需要在Linux下已经安装了Qt. 1.下面是整个程序的详细介绍: ...
- Linux 下socket通信终极指南(附TCP、UDP完整代码)
linux下用socket通信,有TCP.UDP两种协议,网上的很多教程把两个混在了一起,或者只讲其中一种.现在我把自己这两天研究的成果汇总下来,写了一个完整的,适合初学者参考,也方便自己以后查阅. ...
- Linux下的段错误产生的原因及调试方法-转
分类: Linux--Ubuntu入门级 重学C/C++2011-10-19 22:13 332人阅读 评论(0) 收藏 举报 因为你调用了glibc的fputs 检查你传进去的char* +++++ ...
- linux at24c 前几个字节错误,Linux下的段错误产生的原因及调试方法
简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由 ...
- linux 捕获sigsegv信息如何生成core文件,[转]Linux下的段错误产生的原因及调试方法Core Dump...
简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由 ...
- linux java 段错误的是,Linux下的段错误产生的原因及调试方法 转
1楼 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个 ...
- 详细介绍了Linux下配置文件的读取方法及fgyhtrh读取操作的C代码实现
认识指针数组和数组指针从内存方面分析 Linux具有免费.可靠.安全.稳定.多平台等特点,因此深受广大程序员的欢迎. 为了体现软件产品的灵活性,可添加配置文件存放某些重要的参数,在部署的时候根据实际 ...
最新文章
- 河北单招计算机英语,2019年河北高职单招英语联考试题
- 适配器在JavaScript中的体现
- CIKERS Shane 20190611
- Redis 作为缓存服务器的配置
- 看到一个有趣的东东。
- 我不信奉Scrum,我信奉敏捷
- java8多线程运行程序_线程,代码和数据–多线程Java程序实际运行的方式
- maven 多仓库和镜像设置
- [bzoj1500 维修数列](NOI2005) (splay)
- 远程会议总卡顿?8 个“小白”办法一看就会!
- iOS的一些小技巧[转]
- 吉大c 语言程序设计奥鹏作业,吉大18秋学期《C语言程序设计》在线作业一答案...
- 企业架构之道(一)之企业信息化建设
- STM32-GPRS模块连接系统主站
- 笔记本电脑键盘个别键失灵的修复方法
- API的理解和使用——全局命令
- android studio图形验证码,android 一行代码,快速实现图片验证码(附android studio 版小demo)...
- 使用tps5430制作正负DC-DC降压电源,tps7a47和tps7a33制作正负LDO线性电源
- 钉钉中添加回调监听事件
- 如何把图片缩小到30k?怎么压缩图片体积大小?