Ozone是一個跨平臺支持的代碼調試軟件,支持Segger J-link和J-Trace調試器??梢约虞dIAR、keil、GCC、clang/LLVM等工具鏈編譯生成的Elf/Dwarf可執(zhí)行文件,進行C/C++源碼調試和匯編指令調試。
Ozone項目工程文件的結構是一種類似于C語言的腳本語言,允許用戶通過編輯該腳本文件來配置Ozone軟件的用戶界面和自動化調試工作流程。本文將介紹如何調用Ozone支持的腳本函數(shù)來實現(xiàn)自動化的調試工作。

可以通過Ozone軟件GUI所執(zhí)行的大多數(shù)操作都有一個對應的腳本函數(shù),在工程文件中調用該函數(shù)即可實現(xiàn)同樣的效果。例如設置斷點,觀察某個變量或者寄存器的值,將某些分析視圖的結果數(shù)據(jù)導出等等。以及自定義芯片程序在Debug開始之前,Debug暫停和芯片復位之后需要執(zhí)行的特定操作等等。這些都可以通過編輯Ozone工程文件來實現(xiàn)。
Ozone支持的腳本函數(shù)的功能和作用的詳細介紹在Ozone用戶手冊中有詳細的介紹,大多數(shù)函數(shù)從其命名中即可清晰直觀的了解到所對應執(zhí)行的操作。下面將簡單介紹一些常用腳本函數(shù)的例子。
例如通過調用函數(shù)來設置斷點,腳本函數(shù)支持各類型斷點的操作,包括斷點設置,使能,刪除等操作。支持在特定代碼位置設置代碼斷點或者數(shù)據(jù)斷點,只需要在腳本文件調用對應的函數(shù)即可。

可以通過函數(shù)指定在哪個C文件的什么代碼行位置設置斷點,例如在OS_TraceDemo.c文件的第190行位置設置代碼斷點。


當設置的斷點在自動化調試過程中被觸發(fā)的時候,可以通過Break.SetCommand函數(shù)指定該斷點被觸發(fā)時需要執(zhí)行的操作。

可以根據(jù)每個斷點位置設置對應的操作,例如在OS_TraceDemo.c第190行位置斷點被觸發(fā)時調用腳本文件中的OnBPHit2()函數(shù),在該函數(shù)中將指令跟蹤調試Trace到的數(shù)據(jù)分析結果通過Profile系列函數(shù)進行導出,支持導出為txt格式或者csv格式。

在對應的文件路徑下即可找到所導出的指令跟蹤分析結果,代碼覆蓋率分析的結果如下。

在腳本自動化執(zhí)行過程中可以將相應的log或者錯誤信息輸出到Ozone的控制臺窗口,通過調用Util系列函數(shù)來實現(xiàn)。

如果不想通過Ozone的控制臺窗口查看輸出,也可以調用函數(shù)將log信息保存到指定的log文件中。

在腳本的log文件中可以看到自動化調試的執(zhí)行記錄,包括斷點的觸發(fā)記錄,以及觸發(fā)后執(zhí)行的對應操作等。如調用了Watch.Add函數(shù)在watch觀察窗口觀察某個變量的數(shù)值,調用函數(shù)后,Ozone的watch窗口中將會添加對應的變量。

此處通過函數(shù)添加觀察的變量名稱是“on”,在設置的斷點2被觸發(fā)時該變量的值為1。

本文簡單介紹了下Ozone支持的腳本函數(shù),以及調用這些函數(shù)所能夠實現(xiàn)的自動化調試功能,包括在指定位置設置各類型斷點,指定斷點被觸發(fā)后對應執(zhí)行的操作,自動導出Trace跟蹤的數(shù)據(jù)結果等等。Ozone支持的眾多腳本函數(shù)和命令允許用戶在需要執(zhí)行大規(guī)模調試工作的時候進行自動化調試,能夠減輕客戶測試工程師的工作。Ozone支持的完整腳本函數(shù)的詳細介紹請參考Ozone的用戶手冊,本文中介紹使用的完整工程示例可以通過如下鏈接進行下載,感興趣的用戶也可以動手進行嘗試。
審核編輯:湯梓紅
-
C語言
+關注
關注
183文章
7644瀏覽量
145632 -
調試器
+關注
關注
1文章
329瀏覽量
25099 -
腳本函數(shù)
+關注
關注
0文章
4瀏覽量
2029
原文標題:如何設置SEGGER Ozone調試器執(zhí)行自動化調試?
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
深圳招聘-高級自動化測試工程師(熟練掌握LabVIEW、TestSta...
【北京】誠聘自動化測試工程師
靈動微課堂 (第161講) | MM32F013x——巧用Ozone調試MM32 MCU
SEGGER Ozone調試器使用攻略!
如何實現(xiàn)Ozone項目可移植?
一款開源串口調試助手,支持指令調試、協(xié)議解析、自定義上位機面板、自動化測試、以及自動響應
自動化測試腳本開發(fā)技巧
分享10個實用的Python自動化腳本
分享Perl和Python腳本輕量實用的調試工具
如何調用Ozone支持的腳本函數(shù)來實現(xiàn)自動化的調試工作
評論