生活随笔
收集整理的這篇文章主要介紹了
HarmonyOS之变量可视化调试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、概述
在 HarmonyOS 應用調試過程中,查看變量的變化過程是否符合預期結果是一項常用的調試方法。為此 DevEco Studio 提供了調試變量的可視化功能,支持 Java、C/C++ 和 JS 語言的基本數據類型、數值類型的集合和表達式可視化調試,并以Plain(樹形)、Line(折線圖) 、Bar(柱狀圖)和Table(表格)的形式呈現。 開發者可以根據這些圖形化界面觀察當前值、數據類型以及數值的連續變化,通過查看、比對、分析當前變量的變化過程和邏輯關系,判斷出當前值(變量)是否符合預期結果,從而迅速有效的定位問題。 變量可視化支持當前值可視化和連續變化值可視化兩種方式。
二、當前值可視化
當前值可視化:通過解析 Debugger 當前幀的信息,獲取指定變量當前棧幀中的值,以Plain(樹形)、Line(折線圖)、Bar(柱狀圖)和Table(表格)方式進行可視化展示。當前值可視化每次只能觀察一個變量,開發者可以根據需要切換變量進行觀察。 Plain(樹形)顯示結果示意圖:
支持的數據類型包括基本類型(包括基本數據類型和基本數據類型的包裝類)、基本類型的集合和表達式(結果為基本數據類型和基本數據類型的包裝類)。其中:
數據類型支持的展示類型 數值類型:byte、short、int、long、float、double基本數值類型及其包裝類型等 Plain(樹形)、Line(折線圖)、Bar(柱狀圖)和Table(表格) 字符類型:char及其包裝類、String等 Plain(樹形)和Table(表格) 布爾類型:boolean及其包裝類 Plain(樹形)和Table(表格) 包含數值類型的集合或一維數組:List、vector、set等 Plain(樹形)、Line(折線圖)、Bar(柱狀圖)和Table(表格) 一維對象、鍵值對map和數值/字符/布爾類型的集合或數組 Plain(樹形)和Table(表格) 其它 Plain(樹形)
數據類型支持的展示類型 數值類型:int、float、double(或者指定大小的類型如int32_t、int64_t)和signed、unsigned、short、long等的組合 Plain(樹形)、Line(折線圖)、Bar(柱狀圖)和Table(表格) 字符類型:char16_t、char32_t、wchar_t等 Plain(樹形)和Table(表格) 布爾類型:bool Plain(樹形)和Table(表格) 包含數值類型的集合List、vector、set等 Plain(樹形)和Table(表格) 包含數值類型的一維數組 Plain(樹形)、Line(折線圖)、Bar(柱狀圖)和Table(表格) 一維對象、鍵值對map和數值/字符/布爾類型的集合或數組 Plain(樹形)和Table(表格) 其它 Plain(樹形)
如果觀察的變量在當前斷點之后,則會提示“Variable not initialized”。 如果全局靜態變量在代碼塊中未使用,則會提示“error: use of undeclared identifier ‘varName’ ”。 如果在全局非靜態變量和局部變量中存在同名變量名,則在添加 C/C++ 全局非靜態變量時,需要以“::變量名”方式添加,才能正常觀察其值。
數據類型支持的展示類型 數值類型:number Plain(樹形)、Line(折線圖)、Bar(柱狀圖)和Table(表格) 字符類型:string Plain(樹形)和Table(表格) 布爾類型:boolean Plain(樹形)和Table(表格) 一維數值類型的數組:array Plain(樹形)、Line(折線圖)、Bar(柱狀圖)和Table(表格) 一維對象、null和undefined Plain(樹形)和Table(表格) 其它 Plain(樹形)
JS 語法定義變量不區分數據類型,因此,可視化功能會依據數據結果進行智能識別。例如,array 集合識別為數值集合,則支持 Plain、Line、Bar 和 Table;如果識別為字符集合,則只支持 Plain 和 Table。 針對 LiteWearable 和 Smart Vision 設備,如果變量在調試變量欄的 local 中存在,則可視化結果與 local 中該變量的結果保持一致;如果在 local 中不存在該變量,則顯示結果為 Object,如下圖中的變量 object,在 local 中存在,則以 local 中的取值為準。
三、連續變化值可視化
連續變化值可視化:通過坐標圖的方式,可以同時顯示多個變量的連續變化過程,以及變量之間的關系。 連續變化值可視化,只支持基本數值類型的數據可視化。 以 Java 變量可視化為例進行說明:
分析: 在連續變化值可視化中,會呈現所有變量的連續變化結果,其中橫坐標為斷點命中clock,縱坐標為變量值,從添加觀察變量的 clock 開始記錄變量值的連續變化。 在圖中,圓圈符號表示支持(只有數值類型支持)連續變化值可視化,三角符號表示不支持。 在圖中,如果有多個變量的連續變化圖,為方便查看其中指定的變量的變化趨勢,避免非觀察變量帶來的影響,可以點擊圖形上方的變量名,將其設置為灰色,這樣就可以在坐標圖中隱藏該變量,再次點擊灰色的變量名,則在坐標圖中呈現出該變量的連續變化值。 橫坐標記錄范圍最大為 100,超過 100 后,則從 1 開始清除前面的數據。
在連續變化值可視化中,可以點擊 clock 節點,會自動跳轉到對應值的代碼行(斷點位置),并且會高亮顯示代碼行和 clock 時鐘,如下圖所示:
四、變量可視化操作
Java、C/C++ 和 JS 調試變量可視化的操作相同。 在待調試的源代碼中打上斷點,并啟動調試功能。 打開變量可視化調試窗口,可通過在編輯器或者調試變量欄窗口中,選中變量,點擊鼠標右鍵,選中“Add to Visual Watches”,自動將該變量添加到可視化窗口中。 查看變量的當前值和連續變化值。
總結
以上是生活随笔 為你收集整理的HarmonyOS之变量可视化调试 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。