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