如何用gdb调试caffe
来源:互联网 发布:淘宝网可以卖中药吗 编辑:程序博客网 时间:2024/04/25 06:25
基础知识:当我们进入gdb的时候,可能需要的指令主要有:
1、程序运行参数。set args 可指定运行时参数。(如:set args 10 20 30 40 50)show args 命令可以查看设置好的运行参数。2、运行环境。path <dir> 可设定程序的运行路径。show paths 查看程序的运行路径。set environment varname [=value] 设置环境变量。如:set env USER=hchen show environment [varname] 查看环境变量。3、工作目录。cd <dir> 相当于shell的cd命令。pwd 显示当前的所在目录。4、程序的输入输出。info terminal 显示你程序用到的终端的模式。使用重定向控制程序输出。如:run > outfile tty命令可以指写输入输出的终端设备。如:tty /dev/ttyb
调试的指令很简单:
cd $CAFFE_ROOT,
1. gdb ./build/tools/caffe
2. 设置运行参数 set args train --solver=xxxxsolver.prototxt
3. 设置断点, 比如b solver.cpp:59
, 此时会出现“Make breakpoint pending on future shared library load? (y or [n]) ”, 选择y即可,因为断点设置在.so文件中
4. run 即可
gdb的调试信息中并不包含源码,只是包含了怎样去寻找源码,但是有的时候因为某种原因,比如你的源码转移了位置或者别的原因。你需要告诉gdb到哪里去寻找源码,可以使用dir指令:可参考
要查看当前gdb寻找源码的路径:show dir添加一个新的路径到查找路径:dir dirname
添加源代码搜索路径的时候,如果路径很长,那么dir 绝对路径很麻烦,那怎么办?
一个很自然的想法就是利用环境变量:1. 利用gdb里定义的变量很简单;2.利用shell中已有的环境变量,需要使用gdb的shell指令,同时我们可以自定义gdb脚本(利用define语法),具体做法如下:
在$HOME下定义一个.gdbinit文件,输入代码:
define load_caffe_src_path shell echo "dir $CAFFE_ROOT/src/caffe" > /tmp/tmp.caffesrcpath source /tmp/tmp.caffesrcpath shell rm /tmp/tmp.caffesrcpathend
如此,每当我江宁如gdb的时候,只有运行一下自定义命令load_caffe_src_path,即可自动完成源代码查找路径的添加。
1 1
- 如何用gdb调试caffe
- 如何用GDB调试Nginx?
- 如何用GDB调试程序
- WebKit技巧:如何用GDB进行调试
- 如何用GDB进行多线程调试
- 如何用gdb调试多进程
- 如何用gdb进行汇编级的调试
- linux下如何用GDB调试c++程序
- automake 及 autoconfig, 以及如何用gdb调试[转载]
- linux下如何用GDB调试c++程序
- linux下如何用GDB调试c++程序
- linux下如何用GDB调试c++程序
- linux下如何用GDB调试c++程序
- linux下如何用GDB调试c++程序
- linux下如何用GDB调试c++程序
- linux下如何用GDB调试c++程序
- linux下如何用GDB调试c++程序
- Linux下如何用GDB调试c++程序
- 2016.05.14下午【2016纪念中学新初一】基础赛
- LeetCode-143.Reorder List
- ViewPager指示器
- Python3对比Python2的改变
- 位置高度的图片在一直高度的元素中中垂直水平居中(移动端)
- 如何用gdb调试caffe
- SwipeBackActivity的学习遇到的问题
- JavaString类的总结
- 除了升级tomcat版本外,还能怎么解决?
- Android自定义View之如期相遇的百分比进度条RatioProgress
- Android 京东支付
- [POJ 2376] Cleaning Shifts (区间贪心)
- HDU 3635 并查集
- logback取代 log4j的理由