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

article/2025/5/9 7:25:29

参考:
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


出现如下页面,或者 出现需要设置指定重新build的目录界面 一般只需要勾选Debug和Release两种模式即可,点击配置项目configure project,会自动弹出cmake界面,(此时默认为第一个勾选的模式的默认参数,如此处为debug模式)
点击run cmake 目的是为了check cmake的dependency和环境是否正确

点击finish
然后在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代码的截图(左下方可以查看变量的值等,右下方是程序的运行结果)



http://chatgpt.dhexx.cn/article/wucVjO6V.shtml

相关文章

anjuta 连接mysql_深度商店应用Genymotion、Aptana Studio、宝塔Linux面板、Anjuta

深度商店收录Genymotion、Aptana Studio、宝塔Linux面板、Anjuta应用&#xff0c;如果使用Deepin或是统信UOS操作系统&#xff0c;可在深度商店程序上安装它们。 1、Genymotion Genymotion是一款专业的虚拟模拟器&#xff0c;可以在您的电脑上运行安卓应用、游戏或者智能电视应…

linux界面程序崩溃,Linux 下安装anjuta程序运行崩溃 只能用glade做界面

前不久在Fedora 9下采用yum 命令安装了anjuta&#xff0c;但是第一次是就崩溃了&#xff0c;现象如下&#xff1a;anjuta 修改glade文件后不能启动了&#xff0c;anjuta就再也启动不了&#xff0c;loaden那个glade文件&#xff0c;一直停在那里了。郁闷&#xff0c;只能用glade…

ubuntu下安装anjuta

1.安装编译环境&#xff1a; sudo apt-get install build-essential 2.安装g&#xff1a; 虽然系统自带了gcc&#xff0c;但是不一定自带g&#xff0c;sudo apt-get install g-4.6(对应于gcc) 3 安装anjuta&#xff1a; sudo apt-get install anjuta 4 解决依赖&#xff…

Anjuta for liunx

2019独角兽企业重金招聘Python工程师标准>>> Anjuta DevStudio 的官方地址&#xff1a;http://anjuta.sourceforge.net/ Anjuta是一个C/C IDE&#xff0c;它最大的特色是灵活&#xff0c;同时打开多个文件&#xff0c;内嵌代码级的调试器(调用gdb)&#xff0c;应用程…

第115页的gtk+编程例子——最简单的进度条2附带使用Anjuta写gtk程序的步骤

以下gtk编程例子是来自书籍《实用技术&#xff1a;开发Linux应用——用GTK和GDK开发Linux图形用户界面应用》第115页的内容——最简单的进度条2附带使用Anjuta写gtk程序的步骤 官方教程网址https://developer-old.gnome.org/gnome-devel-demos/3.38/progressbar.c.html.en 这是…

linux下anjuta的java环境,Anjuta下载-Anjuta IDE For Linux(集成开发环境)V3.18.0 官方版 - 极光下载站...

Anjuta IDE For Linux 集成开发环境下载&#xff0c;Anjuta IDE For Linux这是专为linux系统推出的开发环境&#xff0c;Anjuta是一个建立在GNU/Linux下为C、C提供编译的集成开发环境。而且Anjuta IDE已经写入GTK/GNOME&#xff0c;并配有先进的编程设施。有需要的朋友欢迎来极…

anjuta 连接mysql_buntu下的可视化C/C++编译器anjuta配置的方法

终于解决了ubuntu下学习C语言的困难了 一&#xff1a; 安装anjuta (可以在ubuntu tweak或者新立得那里查找安装) ubuntu10.04里面已经自带了anjuta 这一步不解释一&#xff1a;安装anjuta(可以在ubuntu tweak或者新立得那里查找安装)ubuntu10.04里面已经自带了anjuta这一步不解…

anjuta调试caffe

Caffe也算是一个代码量比较大的工程&#xff0c;阅读代码过程进行调试有助于我们理解代码。 1、编译debug模式的Caffe 首先要先将Caffe编译成debug模式&#xff0c;即需要将Makefile.config中"DEBUG : 1"前面的注释去掉再进行重新编译&#xff0c;这样就能得到Caff…

Linux学习笔记(六) -- Anjuta软件主界面介绍

1.主界面 基本布局 2.分项介绍 菜单栏 (1)File菜单 包含新建、打开、保存、关闭、打印、退出等基本功能。 (2)Edit菜单 包含撤销、重做、剪切、复制、粘贴、清除、转换、注释、查找、选择、自动完成和性能设置功能。 (3)View菜单 包含全屏、锁定停靠层、重置停靠层…

Anjuta—基于GTK+/GNOME的C/C++优秀开发环境

UBUNTU10.10下软件包/开发工具里选择安装Anjuta,然后还要添加库&#xff1a;sudo apt-get install libpanelappletmm-2.6-dev Introduction (简介)Anjuta是一个为C/C准备的集成开发环境(IDE)。他是为GTK/GNOME而开发并具备一系列高级开发功能等特性。他为Linux和UNIX系列的各种…

第二章-信源与信息熵(二)

接上一节 第二章-信源与信息熵&#xff08;一&#xff09; 2.3 离散序列信源的熵 简介 1. 离散无记忆序列信源 a) 离散无记忆信源的序列熵 b) 离散无记忆信源的符号熵 2. 离散有记忆序列信源 a) 平稳信源 i. 序列熵 ii.…

Python:请输入一段信息,并计算这串消息的信源熵

源码&#xff1a; import string import math count0#用counnt保存不同的符号的个数 print("请输入你想计算信源熵的信息&#xff1a;") n input() sum_numlen(n)#字符的总个数#用list2保存不同的符号数 list1 [] list2 [] for i in n:list1.append(i) for i in …

离散无记忆与有记忆信源的序列熵

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;information-theory】&#xff0c;需要的朋友们自取。或者公众号【AIShareLab】回复 信息论 也可获取。 文章目录 离散无记忆信源…

连续信源微分熵+AEP

目录 一&#xff1a;连续信源 最大熵定理 二&#xff1a;渐进均分性 1&#xff1a;随机变量收敛性 2&#xff1a;大数定律 3&#xff1a;AEP(渐进均分性) 4&#xff1a;典型集 三&#xff1a;数据压缩 一&#xff1a;连续信源 1&#xff09;连续随机变量的微分熵 由概率密度…

【信息论】信源与信源熵(三)

接上一节 第二章-信源与信息熵&#xff08;二&#xff09; 2.4 连续信源的熵与互信息 1. 实际中&#xff0c;连续信源 a) 幅度连续 b) 时间或频率上也连续 2. 统计特性 a) 概率密度函数 3. 用离散变量来逼近连续变量 连续信源熵 1.…

信息论基础——信源熵及其性质研究

本文仅供学习使用&#xff0c;如有侵权请及时联系&#xff0c;博主会第一时间进行处理 信源熵及其性质研究 一、实验目的二、实验原理及内容三、实验设备与材料四、实验步骤五、实验程序及运行结果六、实验总结 一、实验目的 1.掌握离散信源熵的含义及其计算方法&#xff1b;…

离散信源熵1

目录 一&#xff1a;熵的定义 二&#xff1a;联合熵和条件熵 三&#xff1a;相对熵 四&#xff1a;互信息 五&#xff1a;条件互信息 六&#xff1a;条件相对熵 一&#xff1a;熵的定义 解释&#xff1a;,由于P(x)介于0-1之间&#xff0c;大于等于0.不等式&#xff1a; …

离散信源的熵——信息论实验一(Matlab)

信息论与编码技术实验报告 学院&#xff1a; 信息科学与工程学院 班级&#xff1a; 2020通信工程1班 姓名&#xff1a; 麦兜 实验名称 实验一、离散信源的熵 实验设备 &#xff08;1&#xff09;计算机 &#xff08;2&#xff09;所用软件&#xff1a;Matlab或C 实…

离散信源熵2

目录 1&#xff1a;熵的凸性 相对熵的下凸性 熵的上凸性 2&#xff1a;信源的分类 3&#xff1a;自信息 四&#xff1a;离散无记忆扩展信源 五&#xff1a;马尔科夫信源 六&#xff1a;马尔可夫信源的信源熵 求解方法 计算例子 1&#xff1a;熵的凸性 凸函数是定义在定义…

【信息论】信源与信源熵(一)

— 主要内容 1. 信源的分类与描述 2. 离散信源的信息熵和互信息 3. 离散序列信源的熵 4. 连续信源的熵与互信息 5. 冗余度 2.1 信源的分类与描述 — 信源的定义 产生消息&#xff08;符号&#xff09;、消息序列和连续消息的来源。 信源的基本…