MB-Sytem代码调试

这一篇主要讲解如何在Ubuntu环境下调试mbsystem的代码。此次以EM2040采集的all格式记录文件为例,查看并验证其如何解析读取配置文件。

首先通过阅读源码发现,读取配置文件代码位于mbr_em710raw_rd_start函数,同时mbinfo工具会最终会通过mbr_em710raw.c文件调用mbr_em710raw_rd_start函数。可以使用这个命令进行测试。

(1)启动gdb

(2)设置参数命令

(3)分析加断点

可通过查看源码,通过函数方式添加断点mbr_em710raw_rd_start

添加断点成功(b为break缩写)

(4)启动执行代码

r为run缩写,运行至断点处

执行至断点处,上层为断点所在函数

(5)单步调试

Step和next进行单步调试

查看当前代码

 

(6)重新加断点,执行至新断点处

b是break的简写

(7)打印输出需要查看的设备信息

也可以使用p store->type  其中p是print的简写。

也可使用display store->type输出显示信息

注:

其他说明

(1)输出显示指针存储的波束点水深信息。

(2)mb是否可以用来调试?

可以调试,带有调试信息的可执行文件即可调试

(3)如果有多个.o文件a启动b,如何调试b中代码。

直接启动a,添加b中代码的函数断点,会将b符号加载进去

(4)mb目录下对应的.o文件是什么文件?

可以看出是含有调试信息的目标文件。不能用来调试(使用gdb加载时会加载成功,但是执行会失败,不是可执行文件)

(5)用gdb调试时想打印变量值,结果出现了optimized out,打印不出变量内容

打开configure文件和libtool文件,搜索-O2,将所有-O2替换为-O0,然后重新生成makefile即可。

参考资料:

[1]mbcookbook.pdf  https://www.mbari.org/wp-content/uploads/2016/03/mbcookbook.pdf

[2] https://github.com/dwcaress/MB-System

[3]https://www.mbari.org/products/research-software/mb-system/how-to-download-and-install-mb-system/#toggle-id-2

[4] https://www.mbari.org/products/research-software/mb-system/

[5] https://blog.csdn.net/baidu_38172402/article/details/81152192

[6]https://www.mbari.org/products/research-software/mb-system/mb-system-announcements-archive/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值