Ozone是一個跨平臺支持的代碼調(diào)試軟件,支持Segger J-link和J-Trace調(diào)試器??梢约虞dIAR、keil、GCC、clang/LLVM等工具鏈編譯生成的Elf/Dwarf可執(zhí)行文件,進(jìn)行C/C++源碼調(diào)試和匯編指令調(diào)試。
Ozone項(xiàng)目工程文件的結(jié)構(gòu)是一種類似于C語言的腳本語言,允許用戶通過編輯該腳本文件來配置Ozone軟件的用戶界面和自動化調(diào)試工作流程。本文將介紹如何調(diào)用Ozone支持的腳本函數(shù)來實(shí)現(xiàn)自動化的調(diào)試工作。
可以通過Ozone軟件GUI所執(zhí)行的大多數(shù)操作都有一個對應(yīng)的腳本函數(shù),在工程文件中調(diào)用該函數(shù)即可實(shí)現(xiàn)同樣的效果。例如設(shè)置斷點(diǎn),觀察某個變量或者寄存器的值,將某些分析視圖的結(jié)果數(shù)據(jù)導(dǎo)出等等。以及自定義芯片程序在Debug開始之前,Debug暫停和芯片復(fù)位之后需要執(zhí)行的特定操作等等。這些都可以通過編輯Ozone工程文件來實(shí)現(xiàn)。
Ozone支持的腳本函數(shù)的功能和作用的詳細(xì)介紹在Ozone用戶手冊中有詳細(xì)的介紹,大多數(shù)函數(shù)從其命名中即可清晰直觀的了解到所對應(yīng)執(zhí)行的操作。下面將簡單介紹一些常用腳本函數(shù)的例子。
例如通過調(diào)用函數(shù)來設(shè)置斷點(diǎn),腳本函數(shù)支持各類型斷點(diǎn)的操作,包括斷點(diǎn)設(shè)置,使能,刪除等操作。支持在特定代碼位置設(shè)置代碼斷點(diǎn)或者數(shù)據(jù)斷點(diǎn),只需要在腳本文件調(diào)用對應(yīng)的函數(shù)即可。
可以通過函數(shù)指定在哪個C文件的什么代碼行位置設(shè)置斷點(diǎn),例如在OS_TraceDemo.c文件的第190行位置設(shè)置代碼斷點(diǎn)。
當(dāng)設(shè)置的斷點(diǎn)在自動化調(diào)試過程中被觸發(fā)的時候,可以通過Break.SetCommand函數(shù)指定該斷點(diǎn)被觸發(fā)時需要執(zhí)行的操作。
可以根據(jù)每個斷點(diǎn)位置設(shè)置對應(yīng)的操作,例如在OS_TraceDemo.c第190行位置斷點(diǎn)被觸發(fā)時調(diào)用腳本文件中的OnBPHit2()函數(shù),在該函數(shù)中將指令跟蹤調(diào)試Trace到的數(shù)據(jù)分析結(jié)果通過Profile系列函數(shù)進(jìn)行導(dǎo)出,支持導(dǎo)出為txt格式或者csv格式。
在對應(yīng)的文件路徑下即可找到所導(dǎo)出的指令跟蹤分析結(jié)果,代碼覆蓋率分析的結(jié)果如下。
在腳本自動化執(zhí)行過程中可以將相應(yīng)的log或者錯誤信息輸出到Ozone的控制臺窗口,通過調(diào)用Util系列函數(shù)來實(shí)現(xiàn)。
如果不想通過Ozone的控制臺窗口查看輸出,也可以調(diào)用函數(shù)將log信息保存到指定的log文件中。
在腳本的log文件中可以看到自動化調(diào)試的執(zhí)行記錄,包括斷點(diǎn)的觸發(fā)記錄,以及觸發(fā)后執(zhí)行的對應(yīng)操作等。如調(diào)用了Watch.Add函數(shù)在watch觀察窗口觀察某個變量的數(shù)值,調(diào)用函數(shù)后,Ozone的watch窗口中將會添加對應(yīng)的變量。
此處通過函數(shù)添加觀察的變量名稱是“on”,在設(shè)置的斷點(diǎn)2被觸發(fā)時該變量的值為1。
本文簡單介紹了下Ozone支持的腳本函數(shù),以及調(diào)用這些函數(shù)所能夠?qū)崿F(xiàn)的自動化調(diào)試功能,包括在指定位置設(shè)置各類型斷點(diǎn),指定斷點(diǎn)被觸發(fā)后對應(yīng)執(zhí)行的操作,自動導(dǎo)出Trace跟蹤的數(shù)據(jù)結(jié)果等等。Ozone支持的眾多腳本函數(shù)和命令允許用戶在需要執(zhí)行大規(guī)模調(diào)試工作的時候進(jìn)行自動化調(diào)試,能夠減輕客戶測試工程師的工作。Ozone支持的完整腳本函數(shù)的詳細(xì)介紹請參考Ozone的用戶手冊,本文中介紹使用的完整工程示例可以通過如下鏈接進(jìn)行下載,感興趣的用戶也可以動手進(jìn)行嘗試。
審核編輯:湯梓紅
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136863 -
調(diào)試器
+關(guān)注
關(guān)注
1文章
305瀏覽量
23742 -
腳本函數(shù)
+關(guān)注
關(guān)注
0文章
4瀏覽量
1813
原文標(biāo)題:如何設(shè)置SEGGER Ozone調(diào)試器執(zhí)行自動化調(diào)試?
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論