OpenHarmony 開發過程中我們一定會面對各種開發問題,比如如何看 log,如何看系統狀態,如何調試,等等。本章內容就是總結一些常用工具。
交叉編譯工具
源碼下載:OH3.1 用的 5.5,OH3.2 升級了 5.7,兩者都能用:
wgethttps://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabi/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi.tar.xz解壓、配置好路徑(這個就不細講了,可自行百度)。
GDB
源碼下載:
wgethttps://mirrors.ustc.edu.cn/gnu/gdb/gdb-8.2.1.tar.gz交叉編譯:
//1.解壓工具鏈 tarxvfgcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi.tar.xz //2.解壓gdb tarzxvfgdb-8.2.1.tar.gz //3.進入gdb目錄編譯 cdgdb-8.2.1 mkdirbuild cdbuild ../configureCC="/{gcc的路徑}/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc"CXX="/{gcc的路徑}/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++"LDFLAGS=-static--target=arm-linux-gnueabi--host=arm-linux-gnueabi make-j16 //4.build目錄下gdb/gdb就是可執行文件,可以通過filegdb查看文件類型和內容 filegdb/gdb gdb/gdb:ELF32-bitLSBexecutable,ARM,EABI5version1(GNU/Linux),staticallylinked,forGNU/Linux2.6.32,BuildID[sha1]=a20d29b723426dbe06a1b17f66292090f916ad21,withdebug_info,notstripped
注意:編譯后的 gdb 即可傳輸到設備上運行。
Valgrind
源碼下載:
wgethttps://sourceware.org/pub/valgrind/valgrind-3.18.0.tar.bz2交叉編譯:
//1.解壓gdb tarjxvfvalgrind-3.18.0.tar.bz2 //2.進入valgrind目錄編譯 cdvalgrind //3.防止編譯文件污染源碼,建立目錄 mkdirbuild //4.進入編譯目錄 cdbuild ../configureCC="/{gcc的路徑}/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc"CXX="{gcc的路徑}/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++"CPP="/home/wshi/arm-toolchain/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-cpp"--target=arm-linux-gnueabi--host=arm-linux-gnueabi--prefix=/bin make-j16 //5.build目錄下coregrind/valgrind就是可執行文件,可以通過file命令查看文件類型和內容 filecoregrind/valgrind coregrind/valgrind:ELF32-bitLSBexecutable,ARM,EABI5version1(SYSV),dynamicallylinked,interpreter/lib/ld-linux.so.3,forGNU/Linux2.6.32,BuildID[sha1]=3963fa836d42fa54e0cf3c580792b777267f97eb,withdebug_info,notstripped filememcheck/memcheck-arm-linux memcheck/memcheck-arm-linux:ELF32-bitLSBexecutable,ARM,EABI5version1(SYSV),staticallylinked,BuildID[sha1]=72fa59dfe03270faca9929d6658cb67379ad546d,withdebug_info,notstripped //6.由于是DynamicLink,所以需要發送glib庫到板子上, hdc_std-t192.168.137.105:10178filesend/{gcc的路徑}/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/arm-linux-gnueabi/libc/lib/ld-2.21.so/data/local/tmp hdc_std-t192.168.137.105:10178filesend/{gcc的路徑}/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/arm-linux-gnueabi/libc/lib/libc-2.21.so/data/local/tmp //7.發送valgrind到板子上,并發送memcheck-arm-linux到板子,放到/bin/lib/valgrind目錄,如沒有需要自己建目錄,這樣valgrind就能用了
WuKong 命令
簡介:OpenHarmony 穩定性測試自動化工具,通過模擬用戶行為,對 OpenHarmony 系統及應用進行穩定性壓力測試。
約束條件:WuKong 在 OS3.2 系統版本后開始預置使用;OH3.1 需要自己手動編譯,命令為:
./build.sh--product-namerk3568--build-targetwukong編譯后發到板子上運行:
wukongexec-s10-i1000-a0.28-t0.72-c100對應命令解釋:
Top 命令
實時查看 linux 進程運行情況的命令:
第一行:進程統計,238 個進程,一個正在執行(R,top),237 個休眠的
第二行:CPU 信息,4 核(400%),5% 用戶層在用,9% 系統層在用
第三行:具體顯示每個進程信息
包括:
PID:進程號
USER:進程持有用戶
PR:進程優先級,數值越小優先級越高
NI:進程 Nice 值,用作優先級的修正值
VIRT:進程使用的虛擬內存
RES:進程常駐內存
SHR:進程使用的共享內存
S:進程狀態:S,sleep;R,running;I,idle;
%MEM:進程使用的內存占用比
TIME+:進程占用的 CPU 總時長
ARGS:進程名
Tasks:238total,1running,237sleeping,0stopped,0zombie Mem:2011776Ktotal,1169240Kused,842536Kfree,39624704buffers Swap:1048572Ktotal,337664Kused,710908Kfree,316444Kcached 400%cpu5%user0%nice9%sys386%idle0%iow0%irq0%sirq0%host PIDUSERPRNIVIRTRESSHRS[%CPU]%MEMTIME+ARGS 512system-3-8120M32M31MS5.61.647:09.18render_service 32337root2005.7M3.3M2.7MR4.30.10:02.96top 459dsoftbus2003.9G184M32MS2.69.313:11.60softbus_server 444hidumper_se+20013M6.2M6.0MS2.60.312:53.76hidumper_servic 480wifi2005.5M2.2M2.2MS1.60.115:57.09wifi_hal_service 1548100075-15649M122M94MS0.66.21:57.38com.ohos.screenlock 31536root200000I0.30.01:12.82[kworker/0:0-events_freezable] 2090200100155-15637M132M84MS0.36.71:06.40com.ohos.settings 2049200100350-20643M122M77MS0.36.21:01.51ohos.samples.bttest 1532100040-20519M29M27MS0.31.40:31.95com.ohos.mms 1483100050-20516M26M24MS0.31.30:33.25com.ohos.settingsdata 436wifi20017M9.0M9.0MS0.30.40:12.66wifi_manager_se 233logd2007.4M4.0M2.2MS0.30.23:12.76hilogd 32338root0-20000I0.00.00:00.00[kworker/0:0H-mmc_complete] 32336root2005.4M2.4M2.1MS0.00.10:00.05sh- 32335root0-20000I0.00.00:00.00[kworker/3:1H] 32331root0-20000I0.00.00:00.00[kworker/2:1H] 32327root2005.4M3.1M2.8MS0.00.10:00.06sh- 32306rootRT0000S0.00.00:00.01[irq/93-dwc3] 32302root200137M3.9M3.4MS0.00.10:00.19hdcd
Pmap命令
通過 Top 命令,我們發現 dsoftbus 虛擬內存很大,我們可以使用 Pmap 命令查看具體信息。
#pmap-x431 431:softbus_server AddressKbytesPSSDirtySwapModeMapping 0000d0008000-----[anon30526] 0000f000132880rw---[anon30526] 000300008000-----[anon30525] 00032000132880rw---[anon30525] 000530008000-----[anon30524] 00055000132880rw---[anon30524] 000760008000-----[anon30523] 00078000132880rw---[anon30523] 000990008000-----[anon30522] 0009b000132880rw---[anon30522] 000bc0008000-----[anon30521] 00bd1000132880rw---[anon30440] 00bf20008000r----sa_main 00bf400012000r-x--sa_main 00bf70004004r----sa_main 00bf80004440rw---sa_main 00c020004040400rw---[anonmusl] 01dd20008000-----[anon30309] 01dd4000132880rw---[heap] 01df500016603723641288rw---[heap] 01f9b0008000-----[anon30308]
Strace 命令
源碼下載:
wgethttps://strace.io/files/5.18/strace-5.18.tar.xz
交叉編譯:
mkdirbuild cdbuild ../configureCC="/home/wshi/workspace/master-1014/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc"CXX="/home/wshi/workspace/master-1014/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin/arm-linux-gnueabi-g++"--target=arm-linux-gnueabi--host=arm-linux-gnueabi
運行:
strace-f-t-p431-otrace.strace
Meminfo
運行:
#cat/proc/meminfo MemTotal:2010244kB MemFree:1158060kB MemAvailable:1412556kB Buffers:1384kB Cached:291748kB SwapCached:0kB Active:41976kB Inactive:525356kB Active(anon):372kB Inactive(anon):311204kB Active(file):41604kB Inactive(file):214152kB Active(purg):0kB Inactive(purg):0kB Pined(purg):0kB Unevictable:37224kB Mlocked:0kB SwapTotal:1048572kB SwapFree:1048572kB Dirty:20kB Writeback:0kB AnonPages:311424kB Mapped:210128kB Shmem:37436kB KReclaimable:39700kB Slab:100004kB SReclaimable:39700kB SUnreclaim:60304kB KernelStack:17664kB PageTables:7380kB NFS_Unstable:0kB Bounce:0kB WritebackTmp:0kB CommitLimit:2053692kB Committed_AS:5178768kB VmallocTotal:262930368kB VmallocUsed:28216kB VmallocChunk:0kB Percpu:832kB Skb:0kB CmaTotal:16384kB CmaFree:0kB GLTrack:-kB ZspageUsed:12kB識別方法:
審核編輯:湯梓紅
-
源碼
+關注
關注
8文章
639瀏覽量
29185 -
命令
+關注
關注
5文章
683瀏覽量
22011 -
工具
+關注
關注
4文章
311瀏覽量
27770 -
OpenHarmony
+關注
關注
25文章
3713瀏覽量
16254
原文標題:OpenHarmony常用工具匯總
文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論