gdb代码调试

本文记录gdb学习过程以darknet yolov3 调试为例(learning…)

学习gdb代码调试的缘由
  • 强大的代码调试功能,摈弃IDE开发环境
  • darknet yolov3 训练过程中遇到训练图片路径中不能含有"images"字符目录的bug
gdb简介以及常用命令

命令列表转载

darknet yolov3调试

假设已经下载darknet yolov3,图片和标注好的数据已经放在darknet/images下,并配置好voc.data、yolov3-voc.cfg、voc.names等。修改darknet/Makefile文件debug 选项为1(编译时添加调试信息)

gdb darknet
(gdb) set args detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
(gdb) run

Couldn’t open file labels/1.txt
异常中断
darknet目录下搜索Couldn’t open file

grep -rn "Couldn't open file"
src/utils.c:283:    fprintf(stderr, "Couldn't open file: %s\n", s);
Binary file libdarknet.a matches
Binary file obj/utils.o matches
Binary file libdarknet.so matches
Binary file darknet matches
grep -rn "replace"
src/stb_image.h:121://    // ... replace '0' with '1'..'4' to force that many components per pixel
src/stb_image.h:5291:   // if alpha channel is all 0s, replace with all 255s
src/stb_image.h:7312:              fix search&replace from 1.36 that messed up comments/error messages
src/data.c:56:char **find_replace_paths(char **paths, int n, char *find, char *replace)
src/data.c:58:    char **replace_paths = calloc(n, sizeof(char*));
src/data.c:61:        char replaced[4096];
src/data.c:62:        find_replace(paths[i], find, replace, replaced);
src/data.c:63:        replace_paths[i] = copy_string(replaced);
src/data.c:65:    return replace_paths;
src/data.c:219:    find_replace(path, "images", "labels", labelpath);
src/data.c:220:    find_replace(labelpath, "JPEGImages", "labels", labelpath);
src/data.c:221:    find_replace(labelpath, ".jpg", ".txt", labelpath);
src/data.c:222:    find_replace(labelpath, ".JPG", ".txt", labelpath);
src/data.c:223:    find_replace(labelpath, ".JPEG", ".txt", labelpath);
  • “images” 是一个特殊字符串,在图片路径中被"labels"替换
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值