OpenHarmony 開發(fā)過程中我們一定會(huì)面對(duì)各種開發(fā)問題,比如如何看 log,如何看系統(tǒng)狀態(tài),如何調(diào)試,等等。本章內(nèi)容就是總結(jié)一些常用工具。
交叉編譯工具
源碼下載:OH3.1 用的 5.5,OH3.2 升級(jí)了 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解壓、配置好路徑(這個(gè)就不細(xì)講了,可自行百度)。
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.進(jìn)入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就是可執(zhí)行文件,可以通過filegdb查看文件類型和內(nèi)容 filegdb/gdb gdb/gdb:ELF32-bitLSBexecutable,ARM,EABI5version1(GNU/Linux),staticallylinked,forGNU/Linux2.6.32,BuildID[sha1]=a20d29b723426dbe06a1b17f66292090f916ad21,withdebug_info,notstripped
注意:編譯后的 gdb 即可傳輸?shù)皆O(shè)備上運(yùn)行。
Valgrind
源碼下載:
wgethttps://sourceware.org/pub/valgrind/valgrind-3.18.0.tar.bz2交叉編譯:
//1.解壓gdb tarjxvfvalgrind-3.18.0.tar.bz2 //2.進(jìn)入valgrind目錄編譯 cdvalgrind //3.防止編譯文件污染源碼,建立目錄 mkdirbuild //4.進(jìn)入編譯目錄 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就是可執(zhí)行文件,可以通過file命令查看文件類型和內(nèi)容 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,所以需要發(fā)送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.發(fā)送valgrind到板子上,并發(fā)送memcheck-arm-linux到板子,放到/bin/lib/valgrind目錄,如沒有需要自己建目錄,這樣valgrind就能用了
WuKong 命令
簡介:OpenHarmony 穩(wěn)定性測試自動(dòng)化工具,通過模擬用戶行為,對(duì) OpenHarmony 系統(tǒng)及應(yīng)用進(jìn)行穩(wěn)定性壓力測試。
約束條件:WuKong 在 OS3.2 系統(tǒng)版本后開始預(yù)置使用;OH3.1 需要自己手動(dòng)編譯,命令為:
./build.sh--product-namerk3568--build-targetwukong編譯后發(fā)到板子上運(yùn)行:
wukongexec-s10-i1000-a0.28-t0.72-c100對(duì)應(yīng)命令解釋:
Top 命令
實(shí)時(shí)查看 linux 進(jìn)程運(yùn)行情況的命令:
第一行:進(jìn)程統(tǒng)計(jì),238 個(gè)進(jìn)程,一個(gè)正在執(zhí)行(R,top),237 個(gè)休眠的
第二行:CPU 信息,4 核(400%),5% 用戶層在用,9% 系統(tǒng)層在用
第三行:具體顯示每個(gè)進(jìn)程信息
包括:
PID:進(jìn)程號(hào)
USER:進(jìn)程持有用戶
PR:進(jìn)程優(yōu)先級(jí),數(shù)值越小優(yōu)先級(jí)越高
NI:進(jìn)程 Nice 值,用作優(yōu)先級(jí)的修正值
VIRT:進(jìn)程使用的虛擬內(nèi)存
RES:進(jìn)程常駐內(nèi)存
SHR:進(jìn)程使用的共享內(nèi)存
S:進(jìn)程狀態(tài):S,sleep;R,running;I,idle;
%MEM:進(jìn)程使用的內(nèi)存占用比
TIME+:進(jìn)程占用的 CPU 總時(shí)長
ARGS:進(jìn)程名
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 命令,我們發(fā)現(xiàn) dsoftbus 虛擬內(nèi)存很大,我們可以使用 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
運(yùn)行:
strace-f-t-p431-otrace.strace
Meminfo
運(yùn)行:
#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識(shí)別方法:

審核編輯:湯梓紅
-
源碼
+關(guān)注
關(guān)注
8文章
665瀏覽量
30056 -
命令
+關(guān)注
關(guān)注
5文章
722瀏覽量
22631 -
工具
+關(guān)注
關(guān)注
4文章
314瀏覽量
28123 -
OpenHarmony
+關(guān)注
關(guān)注
26文章
3804瀏覽量
17864
原文標(biāo)題:OpenHarmony常用工具匯總
文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論