跟着小白一起学鸿蒙—DFX工具HiDumper
跟着小白一起学鸿蒙—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镜像高速下载
语言:中文版系统大小:2.98GB系统类型:Win8电脑公司Ghost Win8.1x32位纯净版V2022年7月版本集成了自2022流行的各种硬件驱动,首次进入系统即全部硬件已安装完毕。电脑公司Ghost Win8.1x32位纯净版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,精心挑选的系统维护工具,加上绿茶独有
微软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最新系统免激活下载
语言:中文版系统大小:4.75GB系统类型:Win11Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
相关文章
- win7系统大小win7系统安装后各个版本 占用多 爱问知识人
- 笔记本电脑系统一键重装哪个软件好些
- 装机高手教你金士顿u盘修好工具
- is there a service pack 3 for windows 7
- win7激活工具旗舰版图文详细教程图解
- win7看版本
- acerwin7镜像最新系统推荐
- U精灵找不到GHO目录或U盘提示需格式化的处理办法
- uefi启动thinkpad安装win8.1系统方法有哪些【详细介绍】
- 怎样才能进入Windows XP安全模式?
- Win10需要登录微软账户才能使用的功能有哪些?
- 隐藏图标怎样恢复?
- avast静默模式如何启动 avast启动静默模式的教程
- 如何为你打造一个家庭健康管理平台-健康家庭建设
- 笔记本怎样设置wifi共享?
- 微软首次披露:Windows 8将高坐“云端”
- WIN8恢复经典开始菜单的操作方法
- 流言终结者二 Win8还需要ReadyBoost么?
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 4电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1Win10 22H2 最新正式版下载_Win10 22H2 64位正式版镜像下载
- 2雨林木风 GHOST WIN7 SP1 X64 喜迎国庆版 V2023.10 下载
- 3雨林木风 Windows10 x64 企业装机版2020年9月(64位) ISO镜像高速下载
- 4Win11 22H2 22621官方ISO镜像下载_Win11 22H2 22621最新版下载
- 5惠普 GHOST WIN7 SP1 X64 笔记本优化版 V2023.01 下载
- 6番茄花园 Windows 10 官方企业版 2021年2月(64位) ISO高速下载
- 7新萝卜家园 Ghost Win7 x64 SP1 最新极速版2018年8月(64位)ISO镜像下载
- 8惠普笔记本GHOST Win11 旗舰版 64位下载
- 9Win11家庭版免激活下载__Win11 64位家庭中文版(稳定免激活)下载
- 10番茄花园Ghost Win8.1 x64 办公纯净版2020年11月(激活版) ISO镜像高速下载