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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章