GHOST系统之家 - Windows系统光盘下载网站!
当前位置:GHOST系统之家>系统教程 > 跟着小白一起学鸿蒙—DFX工具HiDumper

跟着小白一起学鸿蒙—DFX工具HiDumper

来源:Ghost系统之家浏览:时间:2023-08-08 09:46:45

跟着小白一起学鸿蒙—DFX工具HiDumper

作者:左翼风发 2023-04-04 09:24:11系统 OpenHarmony 本章我们讲了Hidumper,作为开发者的查询工具,通过此工具可以查询系统信息,服务信息,进程栈等信息。

​​想了解更多关于开源的内容,请访问:​​

​​51CTO开源基础软件社区​​

​​https://ost.51cto.com​​

HiDumper

简介

HiDumper是OpenHarmony中为开发、测试人员,IDE工具提供统一的系统信息获取工具,帮助使用者分析,定位问题。

HiDumper主要包括以下几个主要模块:

hidumper:可执行程序,工具入口,在板上可通过hidumper执行对应命令。hidumperclient:动态库,提供framework层接口。lib_dump_usage:动态库,提供framework层功能实现。hidumperservice:动态库,sa服务,提供service层功能实现。

结构分析

.├── BUILD.gn├── bundle.json├── client│ └── native│ ├── dump_client_main.cpp│ └── main.cpp//可执行文件入口├── figures├── frameworks//框架实现│ └── native│ ├── BUILD.gn│ ├── common.h│ ├── dump_controller.h│ ├── dump_utils.cpp│ ├── dump_utils.h│ ├── include│ └── src├── hidumper.gni├── interfaces│ ├── innerkits│ │ ├── BUILD.gn│ │ ├── dump_usage.cpp│ │ └── include│ └── native│ └── innerkits├── LICENSE├── OAT.xml├── README.md├── README_zh.md├── sa_profile├── services//服务实现│ ├── BUILD.gn│ ├── hidumper.map│ ├── native│ │ ├── etc│ │ ├── include│ │ └── src│ └── zidl│ ├── include│ └── src├── test└── utilsusage"usage:\n""-h|help text for the tool\n""-lc |a list of system information clusters\n""-ls |a list of system abilities\n""-c|all system information clusters\n""-c [base system]|system information clusters labeled \"base\" and \"system\"\n""-s|all system abilities\n""-s [SA0 SA1]|system abilities labeled \"SA0\" and \"SA1\"\n""-s [SA] -a ['-h'] |system ability labeled \"SA\" with arguments \"-h\" specified\n""-e|faultlogs of crash history\n""--net |dump network information\n""--storage |dump storage information\n""-p|processes information, include list and infromation of processes"" and threads\n""-p [pid]|dump threads under pid, includes smap, block channel,"" execute time, mountinfo\n""--cpuusage [pid]|dump cpu usage by processes and category; if PID is specified,"" dump category usage of specified pid\n""--cpufreq |dump real CPU frequency of each core\n""--mem [pid] |dump memory usage of total; dump memory usage of specified"" pid if pid was specified\n""--zip |compress output to /data/log/hidumper\n";

如上,我们可以看出hidumper能查看几乎OpenHarmony里内的所有信息,比如:

查看系统ability信息,其中也包括HiDumperService# hidumper -lsSystem ability list:RenderServiceAbilityManagerServiceDataObserverMgrUriPermissionMgr AccountMgr BundleMgrFormMgrApplicationManagerServiceInstalldAccessibilityManagerServiceUserIdmService UserAuthServiceAuthExecutorMgrService PinAuthService FaceAuthServiceWifiDevice WifiHotspotWifiP2pWifiScan BluetoothHostNetConnManagerNetPolicyManager NetStatsManagerNetTetheringManagerEthernetManagerNetsysNative HiviewServiceHiviewFaultLoggerHiviewSysEventServiceHiDumperServiceDistributedKvDataDistributedSched EnterpriseDeviceManagerServiceResourceSchedBackgroundTaskManagerWorkScheduleSocPerfService DeviceUsageStatisticsMemoryManagerServiceLocationGeoConvert LocationLocatorLocationGnssLocationNetworkLocatingLocationNopowerLocatingDeviceStatusServiceAudioDistributed PlayerDistributedService CameraServiceAudioPolicyService AVSessionService MultimodalInputDistributedNotificationService CommonEventService PowerManagerServiceBatteryService ThermalService BatteryStatisticsServiceDisplayPowerManagerService AccessTokenManagerServicePrivacyManagerServiceKeystoreServiceCertManagerService SensorServiceMiscDeviceServicePasteboardServiceTimeServiceInputMethodService ScreenlockServiceWallpaperManagerServiceParamWatcher SysParamDevice TelephonyCellularCallTelephonyCellularDataTelephonySmsMmsTelephonyStateRegistryTelephonyCoreService UsbService WindowManagerServiceDisplayManagerServiceDSoftbus DeviceAuthServiceDeviceManagerService StorageDaemonStorageManagerHdfDeviceServiceManagerDistributedFileDaemondevattest_serviceDistributedDeviceProfile UiService查看系统ability信息,其中也包括HiDumperService-------------------------------[ability]-----------------------------------------------------------------RenderService---------------------------------------Graphic2D--RenderSerice ------Usage: h |help text for the toolscreen |dump all screen infomation in the systemsurface|dump all surface informationcomposer fps |dump the fps info of composer[surface name] fps |dump the fps info of surfacecomposer fpsClear |clear the fps info of composer[surface name] fpsClear |clear the fps info of surfacenodeNotOnTree|dump nodeNotOnTree infoallSurfacesMem |dump surface mem infoRSTree |dump RSTree infoEventParamList |dump EventParamList infoallInfo|dump all info...后面有好多查看系统网络信息#hidumper --net-------------------------------[net]-------------------------------cmd is: netstat -nWActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address Stateudp00 127.0.0.1:44451 127.0.0.1:9877ESTABLISHEDudp00 127.0.0.1:37649 127.0.0.1:9877ESTABLISHEDActive UNIX domain sockets (w/o servers)Proto RefCnt Flags TypeStateI-Node Pathunix2[ ] DGRAM1675 /dev/unix/socket/fd_holderunix74 [ ] DGRAM 344 /dev/unix/socket/hilogInputunix2[ ] DGRAM1719 /dev/unix/socket/hisyseventunix2[ ] SEQPACKET 24844 /dev/unix/socket/hdcd...后面还有好多查看系统进程信息#hidumper -p-------------------------------[processes]-------------------------------cmd is: ps -efTUIDPID TIDPPID TCNT STIME TTYTIME CMDroot 1 1 01 15:55:05 ? 00:00:03 init --second-stageroot 2 2 01 15:55:05 ? 00:00:00 [kthreadd]root 3 3 21 15:55:05 ? 00:00:00 [rcu_gp]root 4 4 21 15:55:05 ? 00:00:00 [rcu_par_gp]root 8 8 21 15:55:05 ? 00:00:00 [mm_percpu_wq]root 9 9 21 15:55:05 ? 00:00:00 [rcu_tasks_rude_]...后面还有好多查看系统内存信息#hidumper --mem-------------------------------[memory]-------------------------------Total Memory Usage by PID:PIDNameTotal Pss(xxx in SwapPss) Total Vss Total Rss Total UssGL Graph4init 1217(0 in SwapPss) kB 4612 kB 3600 kB828 kB0 kB0 kB241watchdog_servic260(0 in SwapPss) kB 3160 kB 2320 kB232 kB0 kB0 kB253hilogd 2414(0 in SwapPss) kB 5968 kB 4576 kB 2252 kB0 kB0 kB254hdf_devmgr 600(0 in SwapPss) kB 6440 kB 3320 kB496 kB0 kB0 kB255hiview 4780(0 in SwapPss) kB79168 kB14752 kB 3148 kB0 kB0 kB256storage_daemon 1539(0 in SwapPss) kB11404 kB 7024 kB932 kB0 kB0 kB...后面有好多查看系统错误#hidumper -e-------------------------------[faultlog]-------------------------------/data/log/faultlog/faultlogger/jscrash-ohos.samples.videoplayer-20010040-20230328160126Generated by HiviewDFX@OpenHarmony================================================================Device info:OpenHarmony 3.2Build info:OpenHarmony 3.2.11.2Module name:ohos.samples.videoplayerVersion:1.0.0Pid:1763Uid:20010040Lifetime: 0.000000sJs-Engine: arkpage: pages/Player.jsError message: assertion (false) failed: type mismatchStacktrace:at clearVideoPlayer (/ets/pages/Player.ets:213:7)at onPageHide (/ets/pages/Player.ets:200:5)...后面还有好多

从上面列举的一些命令可以看出hidumper是个集成入口,有些用了Linux下的常规命令,如ps,netstat,有些用OH内特制的内容,如systemability,faultlog。

基本原理

hidumper同OHOS里的其他服务一样都提供framework和service架构,通过IPC方式通过hidumperservice服务执行具体命令。功能定义:在下面的问题提供三部分内容:base/hiviewdfx/hidumper/frameworks/native/src/util/config_data.cpp1. 功能定义const std::string ConfigData::CONFIG_NAME_SPLIT = "_";const std::string ConfigData::CONFIG_GROUP = "group";...const std::string ConfigData::CONFIG_DUMPER_LIST_SYSTEM_ABILITY = ConfigData::CONFIG_DUMPER_LIST_ + "system_ability";...const std::string ConfigData::STR_ABILITY = "ability";const std::string ConfigData::STR_BASE = "base";const std::string ConfigData::STR_SERVICE = "service";const std::string ConfigData::STR_SYSTEM = "system";2. dumper方法const ConfigData::ItemCfg ConfigData::baseInfoDumper_[] = {{.name_ = "dumper_base_info",.desc_ = "Base Information",.target_ = "",.section_ = "",.class_ = DumperConstant::API_DUMPER,.level_ = DumperConstant::NONE,.loop_ = DumperConstant::NONE,.filterCfg_ = "",},{.name_ = "",.desc_ = "",.target_ = "",.section_ = "",.class_ = DumperConstant::FD_OUTPUT,.level_ = DumperConstant::NONE,.loop_ = DumperConstant::NONE,.filterCfg_ = "",},};3. 功能组定义...const std::string ConfigData::testGroup_[] = {"dumper_test",};const ConfigData::GroupCfg ConfigData::groups_[] = {{.name_ = ConfigData::CONFIG_GROUP_CPU_FREQ,.desc_ = "group of cpu freq dumper",.list_ = cpuFreqGroup_,.size_ = ARRAY_SIZE(cpuFreqGroup_),.type_ = DumperConstant::GROUPTYPE_CPUID,.expand_ = true,},...简单调用流程:graph LRmain --> DumpManagerClient --> DumpManagerService --> DumpImplement功能实现流程:graph LRCmdParse --> GetDumperConfigs --> GetExecutorConfigList --> setExecutorList --> SetProgressEnabled --> DumpDatasCmdParse: 解析命令。GetDumperConfigs: 获取配置。GetExecutorConfigList: 根据配置获取执行命令。setExecutorList: 生成执行命令列表,通过ptrExecutorFactoryMap_获得对应executor。SetProgressEnabled: 设置执行开关。DumpDatas: 执行命令,获取输出信息。executor实现://命令调用popen 对应 dumper里.class_ = DumperConstant::CMD_DUMPER,//文件读取fdopen 对应 dumper里 .class_ = DumperConstant::FILE_DUMPER,//api接口读取提供对应的API调用,如GetDisplayVersion, 对应 dumper里 .class_ = DumperConstant::API_DUMPER,

小结

本章我们讲了hidumper,作为开发者的查询工具,通过此工具可以查询系统信息,服务信息,进程栈等信息。通过此工具可以协助开发者发现一些系统运行信息,比如进程,线程,内存,CPU等信息;当然也可自己根据具体内容实现实现自己的对应查看工具。

​​想了解更多关于开源的内容,请访问:​​

​​51CTO开源基础软件社区​​

​​https://ost.51cto.com​​

责任编辑:jianghua 来源:51CTO 开源基础软件社区 鸿蒙HiDumper

推荐系统

  • 电脑公司Ghost Win8.1 x32 精选纯净版2022年7月(免激活) ISO镜像高速下载

    电脑公司Ghost Win8.1 x32 精选纯净版2022年7月(免激活) ISO镜像高速下载

    语言:中文版系统大小:2.98GB系统类型:Win8

    电脑公司Ghost Win8.1x32位纯净版V2022年7月版本集成了自2022流行的各种硬件驱动,首次进入系统即全部硬件已安装完毕。电脑公司Ghost Win8.1x32位纯净版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,精心挑选的系统维护工具,加上绿茶独有

  • 微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载

    微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载

    语言:中文版系统大小:5.13GB系统类型:Win11

    微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化  1、保留 Edge浏览器。  2、隐藏“操作中心”托盘图标。  3、保留常用组件(微软商店,计算器,图片查看器等)。  5、关闭天气资讯。 

  • Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载

    Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载

    语言:中文版系统大小:4.75GB系统类型:Win11

    Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件

  • windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载

    windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载

    语言:中文版系统大小:5.31GB系统类型:Win11

    windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化

  • 微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载

    微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载

    语言:中文版系统大小:5.31GB系统类型:Win11

    微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载

  • 微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件

    微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件

    语言:中文版系统大小:0MB系统类型:Win11

    微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为

  • 雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载

    雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载

    语言:中文版系统大小:4.75GB系统类型:

    雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统

  • 雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO

    雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO

    语言:中文版系统大小:5.91GB系统类型:Win7

    雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户