DevEco Studio 4.1帶來多種調(diào)試能力,助力鴻蒙原生應(yīng)用開發(fā)高效調(diào)試
目前,HarmonyOS NEXT星河預(yù)覽版已經(jīng)正式面向開發(fā)者開放申請,面向鴻蒙原生應(yīng)用及元服務(wù)開發(fā)者提供的集成開發(fā)環(huán)境——DevEco Studio也迎來功能更細(xì)化的4.1版本。三年來,HUAWEI DevEco Studio不斷挖掘、汲取開發(fā)者的需求和建議,經(jīng)過持續(xù)打磨和系列升級實(shí)現(xiàn)新突破,將全力支持鴻蒙原生應(yīng)用開發(fā)。
為助力高效開發(fā),快速定位問題,DevEco Studio 4.1帶來多種調(diào)試能力,適用于不同的開發(fā)場景,如跨語言調(diào)試、混合堆棧、反向調(diào)試、熱重載、ArkUI Inspector等,本文將介紹DevEco Studio新版本的各項(xiàng)功能場景。
ArkTS C++跨語言混合調(diào)試,操作體驗(yàn)如同單語言
通常,鴻蒙原生應(yīng)用開發(fā)場景中,會使用ArkTS語言開發(fā)前端頁面,使用C++語言來實(shí)現(xiàn)高性能、低內(nèi)存以及底層算法解碼接口的調(diào)用,此場景下調(diào)試就需要使用到ArkTS--C++跨語言混合調(diào)試能力,該能力支持調(diào)試執(zhí)行到調(diào)用C++方法的位置,支持點(diǎn)擊step into按鈕,以及直接跳轉(zhuǎn)到對應(yīng)的C++方法的代碼中。
開發(fā)者只需在調(diào)試設(shè)置界面將Debug type設(shè)置為“Dual(ArkTS/Js + Native)”,開啟混合調(diào)試模式。
1.1 并行棧視圖,可視化查看堆棧調(diào)用關(guān)系
當(dāng)step into跳入到C++方法的代碼中繼續(xù)進(jìn)行調(diào)試時,DevEco Studio提供了并行棧視圖功能,支持在程序停住時,可同時展示多個線程的調(diào)用棧信息,并且自動合并重復(fù)調(diào)用棧,方便開發(fā)者分析程序的并發(fā)執(zhí)行情況,以及發(fā)現(xiàn)潛在的多線程問題。而且支持雙擊視圖上的調(diào)用棧跳轉(zhuǎn)到對應(yīng)堆棧,來查看該堆棧的變量信息。
在C++調(diào)試中窗口中點(diǎn)擊右上角「Layout Settings」按鈕,選擇Parallel Stacks頁簽,即可打開并行棧視圖。
1.2 內(nèi)存查看和修改
調(diào)試C++代碼時,DevEco Studio還支持內(nèi)存查看和修改,開發(fā)者可以查看指定地址的內(nèi)存,進(jìn)行內(nèi)存轉(zhuǎn)換、查看變量的內(nèi)存,以及內(nèi)存修改等操作。
同樣在C++調(diào)試中窗口中點(diǎn)擊右上角Layout Settings按鈕,選擇Memory View,快速打開內(nèi)存查看窗口。
FaultLog異常混合堆棧支持跳轉(zhuǎn)到代碼,更快地定位問題
ArkTS--C++混合語言開發(fā)場景下,可能會遇到C++代碼出現(xiàn)崩潰,希望能夠定位到ArkTS調(diào)用的位置,以此判斷是代碼邏輯問題還是系統(tǒng)側(cè)問題。
此場景下,DevEco Studio提供混合堆棧定位能力,即在C++ Crash中縫合調(diào)用C++方法的ArkTS代碼堆棧信息,并將對應(yīng)代碼位置的堆棧進(jìn)行解碼分析,點(diǎn)擊鏈接能夠直接跳轉(zhuǎn)到對應(yīng)的代碼行位置,方便開發(fā)者查看實(shí)際代碼調(diào)用鏈,快速定位問題。
與此同時,DevEco Studio集成了ASan(Address-Sanitizer),提供面向C/C++的地址越界檢測能力,并通過FaultLog展示錯誤的堆棧詳情及豐富的寄存器、Memory Map等信息。
C++反向調(diào)試,支持回退到歷史行和歷史斷點(diǎn)查看變量信息
針對C/C++開發(fā)場景中的偶發(fā)性問題,DevEco Studio則提供反向調(diào)試能力。在調(diào)試過程中如果對已經(jīng)調(diào)試過的代碼有疑問,可以反向Step Over回退到歷史行,反向Resume執(zhí)行到歷史斷點(diǎn),同時,還可以在程序執(zhí)行歷史的記錄點(diǎn)上查看全局、靜態(tài)、局部變量值,更有利于開發(fā)者分析代碼和定位問題。
打開File > Settings > Build,Execution,Deployment > Debugger > C++ Debugger設(shè)置界面,勾選Enable time travel debug開啟C++反向調(diào)試。
Hot Reload熱重載,保存已修改的代碼后,無需重啟應(yīng)用繼續(xù)調(diào)試
在調(diào)試過程中,開發(fā)者發(fā)現(xiàn)問題及時修改代碼后,如果需要重啟調(diào)試,再次經(jīng)歷編譯構(gòu)建,推包安裝,啟動運(yùn)行,才能看到修改后的效果,這樣反復(fù)操作比較消耗時間,為解決該問題,DevEco Studio提供熱重載(Hot Reload)能力,支持文件增量編譯,應(yīng)用運(yùn)行時熱重載,這樣開發(fā)者在修改源代碼保存后,無需重啟調(diào)試,就能立即在真機(jī)上看到修改后的效果,優(yōu)化調(diào)試過程中重復(fù)的流程,提升調(diào)試效率。開發(fā)者可以在「菜單欄」點(diǎn)擊Hot Reload按鈕,或者設(shè)置快捷鍵來開啟。
ArkUI Inspector定位UI問題,提供更多分析功能
調(diào)試應(yīng)用在運(yùn)行狀態(tài)下的UI顯示效果,是常見的開發(fā)場景。為此,DevEco Studio提供ArkUI Inspector功能,開發(fā)者可以在窗口查看當(dāng)前運(yùn)行應(yīng)用運(yùn)行的UI信息,包括查看UI組件樹,查看組件屬性、組件的父子關(guān)系,檢查是否有冗余的組件,檢查UI和高保真是否一致等等;優(yōu)化UI組件后點(diǎn)擊源碼跳轉(zhuǎn)按鈕即可跳轉(zhuǎn)至源碼位置,這樣有助于分析在UI界面經(jīng)過復(fù)雜操作之后產(chǎn)生的邏輯錯誤,方便問題定位,改進(jìn)優(yōu)化UI代碼。
初次使用打開View >Tool Windows > ArkUI Inspector觸發(fā),即可以在DevEco Studio界面下方展示ArkUI Inspector調(diào)試窗口。
DevEco Studio還有很多開發(fā)能力,等您解鎖,DevEco Studio還有很多開發(fā)能力,等您解鎖,歡迎上線HarmonyOS Developer官網(wǎng)以了解更多:https://developer.huawei.com/consumer/cn/deveco-studio/。