Ozone是一個跨平臺支持的代碼調試軟件,支持Segger J-link和J-Trace調試器??梢约虞dIAR、keil、GCC、clang/LLVM等工具鏈編譯生成的Elf/Dwarf可執行文件,進行C/C++源碼調試和匯編指令調試。
Ozone項目工程文件的結構是一種類似于C語言的腳本語言,允許用戶通過編輯該腳本文件來配置Ozone軟件的用戶界面和自動化調試工作流程。本文將介紹如何調用Ozone支持的腳本函數來實現自動化的調試工作。
可以通過Ozone軟件GUI所執行的大多數操作都有一個對應的腳本函數,在工程文件中調用該函數即可實現同樣的效果。例如設置斷點,觀察某個變量或者寄存器的值,將某些分析視圖的結果數據導出等等。以及自定義芯片程序在Debug開始之前,Debug暫停和芯片復位之后需要執行的特定操作等等。這些都可以通過編輯Ozone工程文件來實現。
Ozone支持的腳本函數的功能和作用的詳細介紹在Ozone用戶手冊中有詳細的介紹,大多數函數從其命名中即可清晰直觀的了解到所對應執行的操作。下面將簡單介紹一些常用腳本函數的例子。
例如通過調用函數來設置斷點,腳本函數支持各類型斷點的操作,包括斷點設置,使能,刪除等操作。支持在特定代碼位置設置代碼斷點或者數據斷點,只需要在腳本文件調用對應的函數即可。
可以通過函數指定在哪個C文件的什么代碼行位置設置斷點,例如在OS_TraceDemo.c文件的第190行位置設置代碼斷點。
當設置的斷點在自動化調試過程中被觸發的時候,可以通過Break.SetCommand函數指定該斷點被觸發時需要執行的操作。
可以根據每個斷點位置設置對應的操作,例如在OS_TraceDemo.c第190行位置斷點被觸發時調用腳本文件中的OnBPHit2()函數,在該函數中將指令跟蹤調試Trace到的數據分析結果通過Profile系列函數進行導出,支持導出為txt格式或者csv格式。
在對應的文件路徑下即可找到所導出的指令跟蹤分析結果,代碼覆蓋率分析的結果如下。
在腳本自動化執行過程中可以將相應的log或者錯誤信息輸出到Ozone的控制臺窗口,通過調用Util系列函數來實現。
如果不想通過Ozone的控制臺窗口查看輸出,也可以調用函數將log信息保存到指定的log文件中。
在腳本的log文件中可以看到自動化調試的執行記錄,包括斷點的觸發記錄,以及觸發后執行的對應操作等。如調用了Watch.Add函數在watch觀察窗口觀察某個變量的數值,調用函數后,Ozone的watch窗口中將會添加對應的變量。
此處通過函數添加觀察的變量名稱是“on”,在設置的斷點2被觸發時該變量的值為1。
本文簡單介紹了下Ozone支持的腳本函數,以及調用這些函數所能夠實現的自動化調試功能,包括在指定位置設置各類型斷點,指定斷點被觸發后對應執行的操作,自動導出Trace跟蹤的數據結果等等。Ozone支持的眾多腳本函數和命令允許用戶在需要執行大規模調試工作的時候進行自動化調試,能夠減輕客戶測試工程師的工作。Ozone支持的完整腳本函數的詳細介紹請參考Ozone的用戶手冊,本文中介紹使用的完整工程示例可以通過如下鏈接進行下載,感興趣的用戶也可以動手進行嘗試。
審核編輯:湯梓紅
-
C語言
+關注
關注
180文章
7630瀏覽量
140201 -
調試器
+關注
關注
1文章
311瀏覽量
24163 -
腳本函數
+關注
關注
0文章
4瀏覽量
1907
原文標題:如何設置SEGGER Ozone調試器執行自動化調試?
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
深圳招聘-高級自動化測試工程師(熟練掌握LabVIEW、TestSta...
ccs和quartus實現自動化調用
【上?!揩C頭推薦職位-自動化測試工程師(java/python)
【北京】誠聘自動化測試工程師
靈動微課堂 (第161講) | MM32F013x——巧用Ozone調試MM32 MCU
SEGGER Ozone調試器使用攻略!
如何實現Ozone項目可移植?
一款開源串口調試助手,支持指令調試、協議解析、自定義上位機面板、自動化測試、以及自動響應
自動化測試腳本開發技巧
分享10個實用的Python自動化腳本
分享Perl和Python腳本輕量實用的調試工具

評論