• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# hidumper
2
3<!--Kit: Performance Analysis Kit-->
4<!--Subsystem: HiviewDFX-->
5<!--Owner: @m0_55013956-->
6<!--Designer: @milkbread123-->
7<!--Tester: @gcw_KuLfPSbe-->
8<!--Adviser: @foryourself-->
9
10hidumper is a command line tool used to export system information. It can analyze the usage of system resources such as CPU, memory, and storage, query the running status of system services, and locate resource usage exceptions and communication problems.
11
12
13Based on the application scenarios supported by hidumper, this topic describes the following basic capabilities: querying memory, CPU usage, system capabilities, process, storage, and system information, obtaining system fault logs, exporting inter-process communication records, and compressing and dumping exported information.
14
15
16For FAQs about hidumper, see [FAQs](#faqs).
17
18
19## Environment Setup
20
21- The [environment setup](hdc.md#environment-setup) is complete.
22
23- The devices are properly connected and **hdc shell** is executed.
24
25
26## Command Description
27
28| Commands| Description|
29| -------- | -------- |
30| -h | Displays help information.|
31| [-lc](#querying-system-information)| Lists system information clusters.|
32| [-ls](#querying-system-service-list)| Lists the running system capabilities.|
33| [-c](#querying-system-information)| Obtains the detailed information about all system information clusters, including device information, kernel information, and environment variables.|
34| [-c [base system]](#querying-system-information)| Obtains details about a specified information cluster, which can be **base** or **system**.|
35| [-s](#obtaining-system-service-details)| Obtains the detailed information about all system capabilities.|
36| [-s [SA0 SA1]](#obtaining-system-service-details)| Obtains the detailed information about one or more system capabilities. Multiple system capability names are separated by spaces. You can run **-ls** to query the system capability name.|
37| [-s [SA] -a ["option"]](#obtaining-capabilities-of-a-specified-system-service)| Executes a specific option of a system capability.<br>**SA**: system capability name.<br>**option**: options supported by the system capability. You can run **-s [SA] -a ["-h"]** to obtain all options supported by a system capability.|
38| [-e](#obtaining-system-fault-logs)| Obtains fault logs.|
39| [--net [pid]](#querying-network-information)| Obtains network information, including network traffic, network API statistics, and IP information. If **pid** is specified, obtains only the network traffic usage of the specified process.|
40| [--storage [pid]](#querying-storage-information)| Obtains storage information, including disk statistics, disk usage, and file handles. If **pid** is specified, the I/O information of the specified process is displayed.|
41| [-p [pid]](#querying-process-information)| Obtains all process and thread information.|
42| [--cpuusage [pid]](#querying-process-cpu-usage)| Obtains the CPU usage by process and category. If a PID is specified, the CPU usage of the specified PID is displayed. The value range is (0, Number of CPU cores].|
43| [--cpufreq](#querying-cpu-frequency)| Obtains the actual CPU frequency of each core, in kHz.|
44| [--mem [--prune]](#querying-device-memory)| Obtains the total memory usage. If **--prune** is specified, only simplified memory usage is exported.|
45| [--mem pid [--show-ashmem]](#querying-process-memory)| Obtains the memory usage of a specified process. If **--show-ashmem** is specified, detailed ashmem usage information is also printed. <br />Note:Since API version 20, the **--show-ashmem** parameter is surpported。 |
46| [--zip](#compressing-exported-information)| Saves the command output to a compressed file in ZIP format in **/data/log/hidumper**.|
47| [--ipc [pid]/-a --start-stat/stat/--stop-stat](#obtaining-ipc-information)| Collects IPC information of a process in a specified period. If **-a** is used, IPC information of all processes is collected. **--start-stat** starts the IPC information collection. **--stat** obtains the IPC information. **--stop-stat** stops the IPC information collection.|
48| [--mem-smaps pid [-v]](#querying-process-memory)| Obtains the memory usage of a specified process from **/proc/pid/smaps**. **-v** is used to specify more details about the process. (This command is available only for [applications of the debug version](performance-analysis-kit-terminology.md#applications-of-the-debug-version).)|
49| [--mem-jsheap pid [-T tid] [--gc] [--leakobj] [--raw]](#querying-vm-heap-memory)| Triggers GC and exports a heap snapshot for the JS thread of the ArkTS application. The **pid** parameter is mandatory. If **tid** is specified, only the thread's GC is triggered and its heap memory snapshot is exported. If **--gc** is specified, only GC is triggered and the snapshot is not exported. If **--leakobj** is specified, the list of leaked objects can be obtained after leak detection is enabled for the application.<br>The file name format is **jsheap-Process ID-JS thread ID-Timestamp**. The file content is a JSON-structured JS heap snapshot.<br>If **--raw** is specified, the heap snapshot is exported in .rawheap format.|
50| [--mem-cjheap pid [--gc]](#querying-vm-heap-memory)| Triggers GC and exports a heap snapshot for the Cangjie application. The **pid** parameter is mandatory. If **--gc** is specified, only GC is triggered. No snapshot is exported.<br>Note: This parameter is supported since API version 20.|
51
52## Querying Memory Information
53
54The hidumper memory information query module is used to view device memory usage and process memory usage. To use this module, you need to understand the [basic memory knowledge](https://developer.huawei.com/consumer/en/doc/best-practices/bpta-memory-basic-knowledge).
55
56### Querying Device Memory
57
58Run the **hidumper --mem** command to obtain the device memory usage.
59
60The output is as follows:
61
62```
63$ hidumper --mem
64-------------------------------[memory]-------------------------------
65Total Memory Usage by PID:
66PID       Total Pss(xxx in SwapPss)   Total Vss   Total Rss   Total Uss          GL       Graph         Dma     PurgSum     PurgPin    Name
671          4309(2216 in SwapPss) kB  2158196 kB     4180 kB     1760 kB        0 kB        0 kB        0 kB        0 kB        0 kB    init
682            45613(0 in SwapPss) kB 17452952 kB    48352 kB    44088 kB        0 kB        0 kB        0 kB        0 kB        0 kB    sysmgr-main
69...
70Total Memory Usage by Size:
71PID        Total Pss(xxx in SwapPss)    Total Vss    Total Rss    Total Uss           GL        Graph          Dma      PurgSum      PurgPin     Name
723031         421826(0 in SwapPss) kB   5199308 kB    610812 kB    395712 kB         0 kB     17000 kB     17000 kB         0 kB         0 kB     xxx
731473         409349(0 in SwapPss) kB   7014040 kB    449460 kB    389528 kB    160336 kB     57092 kB     57092 kB         0 kB         0 kB     xxx
74...
75Total Pss by OOM adjustment:
76System: 1426777 kB
77   xxx(pid=1473):  409349 kB
78   xxx(pid=992):     80734 kB (23720 kB in SwapPss)
79...
80Total Pss by Category:
81File-backed Page(1414160 kB):
82      1053457 kB : .so
83       322813 kB : other
84        25616 kB : .hap
85         8064 kB : .ttf
86         3696 kB : .db
87          514 kB : dev
88Anonymous Page(2280332 kB):
89      1348463 kB : native heap
90       518107 kB : ark ts heap
91       361195 kB : other
92        49287 kB : stack
93         3280 kB : dev
94            0 kB : guard
95GPU(160340 kB):
96       160340 kB : GL
97Graph(350708 kB):
98       350708 kB : Graph
99DMA(350708 kB):
100       350708 kB : Dma
101
102      Total RAM:15803612 kB
103       Free RAM:10287099 kB (3999535 cached + 6287564 free)
104       Used RAM:3961668 kB (3163324 total pss + 798344 kernel)
105       Lost RAM:2086013 kB
106
107Total RAM by Category:
108hidumper - Hardware Usage:1860480 kB
109      CMA Usage:0 kB
110-   Kernel Usage:656937 kB
111Processes Usage:3694492 kB
112
113Total Purgeable:
114  Total PurgSum:0 kB
115  Total PurgPin:0 kB
116```
117
118Virtual Set Size (VSS) is the virtual memory size of the process, including all memory areas mapped to the process address space.
119
120Resident Set Size (RSS) is the size of memory actually resident in physical memory for the process.
121
122Proportional Set Size (PSS) is a more accurate method of measuring memory usage. It allocates the memory consumed by shared libraries among all processes using them in proportion to their actual share.
123
124Purgeable Summary (PurgSum) is the total amount of memory that can be reclaimed by the process.
125
126Purgeable Pinned (PurgPin) is memory that is reclaimable but not immediately reclaimable.
127
128Graphics Library (GL) is graphics memory, which includes the application texture memory and graphics rendering memory. The values of **Graph** and **Dma** are the same.
129
130You can run the **hidumper --mem --prune** command to obtain the simplified device memory usage.
131
132The output is as follows:
133
134```shell
135$ hidumper --mem --prune
136-------------------------------[memory]-------------------------------
137Total Memory Usage by PID:
138PID        Total Pss(xxx in SwapPss)           GL     AdjLabel     Name
1391           4061(1668 in SwapPss) kB         0 kB        -1000     xxx
1402            101723(0 in SwapPss) kB         0 kB        -1000     xxx
141...
142```
143
144AdjLabel indicates the memory reclaim priority of the process. The value ranges from -1000 to 1000. A larger value indicates that the process is less important, and the memory is reclaimed first.
145
146
147### Querying Process Memory
148
149Run the **hidumper --mem pid** command to obtain the memory usage of a specified process. **pid** indicates the process ID.
150
151Example:
152
153```shell
154$ hidumper --mem 27336
155
156-------------------------------[memory]-------------------------------
157
158                          Pss         Shared         Shared        Private        Private           Swap        SwapPss           Heap           Heap           Heap
159                        Total          Clean          Dirty          Clean          Dirty          Total          Total           Size          Alloc           Free
160                       ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )
161              ------------------------------------------------------------------------------------------------------------------------------------------------------
162            GL              0              0              0              0              0              0              0              0              0              0
163         Graph              0              0              0              0              0              0              0              0              0              0
164   ark ts heap          12676           5516              0          12468              0           3068           3068              0              0              0
165         guard              0              0              0              0              0              0              0              0              0              0
166   native heap          15427          27132              0          14424              0          18776          18776          55796          53564           2809
167          .hap              4              0              0              4              0              0              0              0              0              0
168AnonPage other           1109           4932              0            968              0           4280           4280              0              0              0
169         stack           1404              0              0           1404              0             28             28              0              0              0
170           .db             32              0              0             32              0              0              0              0              0              0
171           .so          12877          58928          18868           5628           2028           1036           1036              0              0              0
172           dev             52              0            284             52              0              0              0              0              0              0
173          .ttf            296           1264              0              0              0              0              0              0              0              0
174FilePage other          21933           1432           4300          21524            148              0              0              0              0              0
175--------------------------------------------------------------------------------------------------------------------------------------------------------------------
176         Total          92998          99204          23452          56504           2176          27188          27188          55796          53564           2809
177
178native heap:
179  jemalloc meta:          1010            276              0           1000              0            156            156              0              0              0
180  jemalloc heap:         13126          22412              0          12260              0          17876          17876              0              0              0
181       brk heap:          1259           4444              0           1132              0            744            744              0              0              0
182      musl heap:            32              0              0             32              0              0              0              0              0              0
183
184Purgeable:
185        PurgSum:0 kB
186        PurgPin:0 kB
187
188DMA:
189            Dma:0 kB
190
191Ashmem:
192Total Ashmem:144 kB
193```
194
195Run the **hidumper --mem pid --show-ashmem** command to obtain the memory usage of a specified PID and print the detailed ashmem usage information.
196
197Example:
198
199```shell
200$ hidumper --mem 27336 --show-ashmem
201-------------------------------[memory]-------------------------------
202
203                          Pss         Shared         Shared        Private        Private           Swap        SwapPss           Heap           Heap           Heap
204                        Total          Clean          Dirty          Clean          Dirty          Total          Total           Size          Alloc           Free
205                       ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )         ( kB )
206              ------------------------------------------------------------------------------------------------------------------------------------------------------
207            GL              0              0              0              0              0              0              0              0              0              0
208         Graph              0              0              0              0              0              0              0              0              0              0
209   ark ts heap          12657           5516              0          12468              0           3068           3068              0              0              0
210         guard              0              0              0              0              0              0              0              0              0              0
211   native heap          15191          27132              0          14252              0          18780          18780          55792          53527           2629
212          .hap              4              0              0              4              0              0              0              0              0              0
213AnonPage other           1094           4932              0            964              0           4280           4280              0              0              0
214         stack           1388              0              0           1388              0             28             28              0              0              0
215           .db             32              0              0             32              0              0              0              0              0              0
216           .so          12557          59184          18868           5372           2028           1036           1036              0              0              0
217           dev             52              0            284             52              0              0              0              0              0              0
218          .ttf            296           1264              0              0              0              0              0              0              0              0
219FilePage other          21916           1432           4300          21524            148              0              0              0              0              0
220--------------------------------------------------------------------------------------------------------------------------------------------------------------------
221         Total          92379          99460          23452          56056           2176          27192          27192          55792          53527           2629
222
223native heap:
224  jemalloc meta:          1008            276              0           1000              0            156            156              0              0              0
225  jemalloc heap:         12892          22412              0          12088              0          17880          17880              0              0              0
226       brk heap:          1259           4444              0           1132              0            744            744              0              0              0
227      musl heap:            32              0              0             32              0              0              0              0              0              0
228
229Purgeable:
230        PurgSum:0 kB
231        PurgPin:0 kB
232
233DMA:
234            Dma:0 kB
235
236Ashmem:
237Total Ashmem:144 kB
238Process_name    Process_ID      Fd      Cnode_idx       Applicant_Pid   Ashmem_name     Virtual_size    Physical_size   magic    -> Detailed ashmem information
239wei.xxx.xxx  27336   72      328415  27336   dev/ashmem/Paf.Permission.appImg        147456  147456  14105
240```
241
242Run the **hidumper --mem-smaps pid** command to obtain the detailed memory usage of a specified process. This command aggregates values for identical memory segments.
243
244Example:
245
246```txt
247$ hidumper --mem-smaps 3456  # 3456 indicates the process ID of the target debuggable application.
248
249-------------------------------[memory]-------------------------------
250
251                                    Shared      Shared      Private     Private
252Size        Rss         Pss         Clean       Dirty       Clean       Dirty       Swap        SwapPss     Counts      Category                         Name
25316          0           0           0           0           0           0           4           4           3           FilePage other                   [anon]
2548           8           8           0           0           8           0           0           0           1           FilePage other                   /bin/init
2552048        52          0           0           52          0           0           0           0           1           dev                              /dev/__parameters__/param_sec_dac
25680          28          1           0           28          0           0           0           0           1           dev                              /dev/__parameters__/param_selinux
257...
258```
259
260Statistics
261
262| Field| Description|
263| -------- | -------- |
264| Counts | Number of occurrences of the same memory segment.|
265| Category | Memory category.|
266
267Run the **hidumper --mem-smaps pid -v** command to obtain the detailed memory usage of a specified process. This command directly prints all memory information of the process and does not perform secondary processing on the same memory information.
268
269
270Example:
271
272```txt
273$ hidumper --mem-smaps 3456 -v   # 3456 indicates the process ID of the target debuggable application.
274
275-------------------------------[memory]-------------------------------
276                                    Shared      Shared      Private     Private
277Size        Rss         Pss         Clean       Dirty       Clean       Dirty       Swap        SwapPss     Category                   Name
2784           4           2           0           4           0           0           0           0           FilePage other             [anon]
2794           4           2           0           4           0           0           0           0           FilePage other             /bin/init
280...
281```
282
283**NOTE**
284
285The **hidumper --mem-smaps \[pid] \[-v]** command should be used for [applications of the debug version](performance-analysis-kit-terminology.md#applications-of-the-debug-version).
286
287To check whether the application specified by the command is a debug application, run the **hdc shell "bm dump -n [application bundle name] | grep appProvisionType"** command. The expected result is **"appProvisionType": "debug"**.
288
289For example, run the following command to check the bundle name **com.example.myapplication**:
290
291```shell
292hdc shell "bm dump -n com.example.myapplication | grep appProvisionType"
293```
294
295If the application is a debug application, the following information is displayed:
296
297```shell
298"appProvisionType": "debug",
299```
300
301To build a debug application, you need to use a debug certificate for signature. For details about how to request and use the debug certificate, see [Requesting a Debug Certificate](https://developer.huawei.com/consumer/en/doc/app/agc-help-add-debugcert-0000001914263178).
302
303
304### Querying VM Heap Memory
305
306<!--RP2-->
307Run the **hidumper --mem-jsheap pid [-T tid] [--gc] [--leakobj] [--raw]** command to check the ArkTS application VM heap memory, and run the **hidumper --mem-cjheap pid [--gc]** command to check the Cangjie application VM heap memory. Heap memory files are stored in **/data/log/faultlog/temp**.
308<!--RP2End-->
309
310> **NOTE**
311>
312> The **hidumper --mem-jsheap pid \[-T tid] \[--gc] \[--leakobj] \[--raw]** command should be used for [applications of the debug version](performance-analysis-kit-terminology.md#applications-of-the-debug-version).
313>
314> For details about how to check whether the application specified by the command is debuggable, see "NOTE" in the **hidumper --mem-smaps [pid] [-v]** command.
315
316- Run the **hidumper --mem-jsheap pid** command to obtain the VM heap memory of all JavaScript threads of a specified process. The file name is in the format of **jsheap-Process ID-JS thread ID-Timestamp**. If there are multiple JavaScript threads, multiple files are generated.
317
318  Example:
319
320  <!--RP3-->
321  ```shell
322  $ hidumper --mem-jsheap 64949  -> 64949 indicates the process ID of the target application.
323  $ ls | grep jsheap   -> Go to the heap memory file directory and run the command.
324  jsheap-64949-64949-1751075546050
325  jsheap-64949-64989-1751075546050
326  ```
327  <!--RP3End-->
328
329- Run the **hidumper --mem-jsheap pid -T tid** command to obtain the VM heap memory of the specified JavaScript thread of a specified process. The file name is in the format of **jsheap-Process ID-JS thread ID-Timestamp**.
330
331  Example:
332
333  <!--RP4-->
334  ```shell
335  $ hidumper --mem-jsheap 64949 -T 64949  -> 64949 indicates the process ID of the target application.
336  $ ls | grep jsheap   -> Go to the heap memory file directory and run the command.
337  jsheap-64949-64949-1751075567710
338  ```
339  <!--RP4End-->
340
341- Run the **hidumper --mem-jsheap pid \[-T tid] --raw** command to obtain the VM heap memory of a specified process or JavaScript thread. The generated heap memory file is in .rawheap format and named in the format of **jsheap-Process ID-JS thread ID-Timestamp.rawheap**. For details about how to parse and convert the .rawheap file, see [rawheap-translator](../tools/rawheap-translator.md).
342
343  Example:
344
345  <!--RP5-->
346  ```shell
347  $ hidumper --mem-jsheap 64949 --raw  -> 64949 indicates the process ID of the target application.
348  $ ls | grep jsheap   -> Go to the heap memory file directory and run the command.
349  jsheap-64949-64949-1751075546050.rawheap
350  jsheap-64949-64989-1751075546050.rawheap
351  $ hidumper --mem-jsheap 64949 -T 64949 --raw  -> 64949 indicates the process ID of the target application.
352  $ ls | grep jsheap
353  jsheap-64949-64949-1751075546055.rawheap
354  ```
355  <!--RP5End-->
356
357- Run the **hidumper --mem-jsheap pid --gc** command to trigger GC for a specified application process. If this command is executed successfully, no file is generated.
358
359  Example:
360
361  ```shell
362  $ hidumper --mem-jsheap 64949 --gc  -> 64949 indicates the process ID of the target application.
363  ```
364
365- Run the **hidumper --mem-jsheap pid --leakobj** command to obtain the VM heap memory and leaked object information of a specified process. The file is named in format of **leaklist-Process ID-Timestamp**.
366
367  > **NOTE**
368  >
369  > Before obtaining the VM heap memory and leaked object information of a specified process, ensure that the leak detection functionality is enabled for the application using the [@ohos.hiviewdfx.jsLeakWatcher (JS Leak Detection)](../reference/apis-performance-analysis-kit/js-apis-jsleakwatcher.md) API.
370  >
371  > The procedure is as follows:
372  >
373  > 1. The application calls the [jsLeakWatcher.enable](../reference/apis-performance-analysis-kit/js-apis-jsleakwatcher.md#jsleakwatcherenable) API.
374  > 2. The application calls the [jsLeakWatcher.watch](../reference/apis-performance-analysis-kit/js-apis-jsleakwatcher.md#jsleakwatcherwatch) API.
375  > 3. Run the **hidumper --mem-jsheap [pid] --leakobj** command to export the VM heap memory and leaked object information.
376
377  Example:
378
379  <!--RP7-->
380  ```shell
381  $ hidumper --mem-jsheap 64949 --leakobj
382  $ ls | grep leaklist
383  leaklist-64949-1730873210483
384  ```
385  <!--RP7End-->
386
387  <!--Del-->
388- Run the **hidumper --mem-cjheap pid** command to obtain the VM heap memory of a specified Cangjie process. The file name format is **cjheap-Process ID-Timestamp**.
389
390  Example:
391
392  ```shell
393  $ hidumper --mem-cjheap 65012  -> 65012 indicates the process ID of the target application.
394  $ ls | grep cjheap   -> Run this command in the heap memory file directory.
395  cjheap-65012-1751075546050
396  ```
397
398- Run the **hidumper --mem-cjheap pid --gc** command to trigger GC for a specified Cangjie application process. If this command is executed successfully, no file is generated.
399
400  Example:
401
402  ```shell
403  $ hidumper --mem-cjheap 65012 --gc  -> 65012 indicates the process ID of the target application.
404  ```
405<!--DelEnd-->
406You can run the hdc [file transfer](hdc.md#transferring-files) command to obtain the generated file from the device.
407
408
409## Querying CPU Usage
410
411You can use the hidumper to query the CPU information, which includes the system CPU load.
412
413
414### Querying Device CPU Usage
415
416Run the **hidumper --cpuusage** command to obtain the device CPU usage.
417
418The output is as follows:
419
420```shell
421$ hidumper --cpuusage
422
423-------------------------------[cpuusage]-------------------------------
424
425Load average: 12.1 / 12.2 / 12.1; the cpu load average in 1 min, 5 min and 15 min
426CPU usage from 2024-11-06 11:59:33 to 2024-11-06 11:59:38
427Total: 6.38%; User Space: 2.57%; Kernel Space: 3.81%; iowait: 0.02%; irq: 0.14%; idle: 93.46%
428Details of Processes:
429    PID   Total Usage      User Space    Kernel Space    Page Fault Minor    Page Fault Major    Name
430    105      109.01%           0.00%        109.01%             164                   0            tppmgr.elf
431    2          0.89%           0.00%          0.89%               0                   0            sysmgr-main
432...
433```
434
435
436### Querying Process CPU Usage
437
438Run the **hidumper --cpuusage pid** command to obtain the CPU usage of a specified process.
439
440The output is as follows:
441
442```shell
443$ hidumper --cpuusage 1
444
445-------------------------------[cpuusage]-------------------------------
446
447Load average: 12.1 / 12.2 / 12.1; the cpu load average in 1 min, 5 min and 15 min
448CPU usage from 2024-11-06 11:59:33 to 2024-11-06 11:59:35
449Total: 3.80%; User Space: 1.45%; Kernel Space: 2.35%; iowait: 0.00%; irq: 0.14%; idle: 96.06%
450Details of Processes:
451    PID   Total Usage      User Space    Kernel Space    Page Fault Minor    Page Fault Major    Name
452    1          0.00%           0.00%          0.00%           38368                1394            init
453```
454
455
456### Querying CPU Frequency
457
458Run the **hidumper --cpufreq** command to obtain the CPU frequency.
459
460The output is as follows:
461
462```shell
463$ hidumper --cpufreq
464
465-------------------------------[cpufreq]-------------------------------
466
467
468cmd is: cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
469
4701018000
471
472cmd is: cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
473
4741530000
475...
476```
477
478
479## Querying System Services
480
481
482### Querying System Service List
483
484- Run the **hidumper -ls** command to obtain the running system service list.
485
486The output is as follows:
487
488```shell
489$ hidumper -ls
490System ability list:
491SystemAbilityManager             RenderService                    AbilityManagerService
492DataObserverMgr                  AccountMgr                       AIEngine
493BundleMgr                        FormMgr                          ApplicationManagerService
494AccessibilityManagerService      UserIdmService                   UserAuthService
495AuthExecutorMgrService           PinAuthService                   FaceAuthService
496FingerprintAuthService           WifiDevice                       WifiHotspot
497WifiP2p                          WifiScan                         1125
4981126                             BluetoothHost                    NetConnManager
499NetPolicyManager                 NetStatsManager                  NetTetheringManager
500...
501```
502
503
504### Obtaining System Service Details
505
506- Run the **hidumper -s** command to obtain detailed information about all system services.
507
508The output is as follows:
509
510```shell
511$ hidumper -s
512
513-------------------------------[ability]-------------------------------
514
515
516----------------------------------SystemAbilityManager----------------------------------
517The arguments are illegal and you can enter '-h' for help.
518
519-------------------------------[ability]-------------------------------
520
521
522----------------------------------RenderService----------------------------------
523------Graphic2D--RenderService ------
524Usage:
525h                             |help text for the tool
526...
527```
528
529
530- Run the **hidumper -s [SA0] [SA1]** command to obtain detailed information about one or more specified system services. You can run the **hidumper -ls** command to query the system capability names **[SA0] [SA1]**.
531
532
533The output is as follows:
534
535
536```shell
537$ hidumper -s WindowManagerService
538
539-------------------------------[ability]-------------------------------
540
541
542----------------------------------WindowManagerService----------------------------------
543Usage:
544-h                             |help text for the tool
545-a                             |dump all window information in the system
546-w {window id} [ArkUI Option]  |dump specified window information
547------------------------------------[ArkUI Option]------------------------------------
548...
549$ hidumper -s WindowManagerService RenderService
550
551-------------------------------[ability]-------------------------------
552
553
554----------------------------------WindowManagerService----------------------------------
555Usage:
556-h                             |help text for the tool
557-a                             |dump all window information in the system
558-w {window id} [ArkUI Option]  |dump specified window information
559------------------------------------[ArkUI Option]------------------------------------
560
561
562-------------------------------[ability]-------------------------------
563
564
565----------------------------------RenderService----------------------------------
566------Graphic2D--RenderService ------
567Usage:
568h                             |help text for the tool
569screen                         |dump all screen information in the system
570surface                        |dump all surface information
571composer fps                   |dump the fps info of composer
572...
573```
574
575
576### Obtaining Capabilities of a Specified System Service
577
578
579Run the **hidumper -s [SA] -a ["option"]** command to obtain the capabilities provided by a specified system service.
580
581
582The following example obtains the help information about RenderService:
583
584
585```shell
586$ hidumper -s RenderService -a "h"
587
588-------------------------------[ability]-------------------------------
589
590----------------------------------RenderService----------------------------------
591------ Graphic2D--RenderSerice ------
592Usage:
593gles                          |inquire gpu info
594h                             |help text for the tool
595allInfo                       |dump all info
596fpsCount                      |dump the refresh rate counts info
597surfacenode                   |surfacenode [id]
598trimMem                       |dump trim Mem info
599surface                       |dump all surface information
600MultiRSTrees                  |dump multi RS Trees info
601fpsClear                      |[surface name]/composer fpsClear, clear the fps info
602dumpMem                       |dump Cache
603allSurfacesMem                |dump surface mem info
604RSTree                        |dump RS Tree info
605rsLogFlag                     |set rs log flag
606nodeNotOnTree                 |dump nodeNotOnTree info
607client                        |dump client ui node trees
608clearFpsCount                 |clear the refresh rate counts info
609hitchs                        |[windowname] hitchs, dump the hitchs info of window
610vktextureLimit                |dump vk texture limit info
611EventParamList                |dump EventParamList info
612dumpNode                      |dump render node info
613dumpExistPidMem               |dumpExistPidMem [pid], dump exist pid mem info
614fps                           |[windowname] fps, dump the fps info of window
615flushJankStatsRs              |flush rs jank stats hisysevent
616screen                        |dump all screen information in the system
617```
618
619
620Run the following command to obtain the capability of obtaining GPU information:
621
622```shell
623$ hidumper -s RenderService -a "gles"
624
625-------------------------------[ability]-------------------------------
626
627
628----------------------------------RenderService----------------------------------
629
630-- DumpGpuInfo:
631GL_VENDOR: HUAWEI
632GL_RENDERER: Maleoon 910
633GL_VERSION: OpenGL ES 3.2 B283
634GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.20
635```
636
637
638## Querying Process Information
639
640Run the **hidumper -p [pid]** command to obtain information about a specified process, including the mount, thread, thread runtime, and wait channel information.
641
642
643> **NOTE**
644>
645> The **hidumper -p [pid]** command should be used for applications signed by the debug certificate.
646>
647> For details about how to check whether the application specified by the command is debuggable, see the description of the **hidumper --mem-smaps [pid] [-v]** command.
648
649
650The output is as follows:
651
652
653```shell
654$ hidumper -p 64949
655
656-------------------------------[processes]-------------------------------
657
658
659cmd is: ps -efT -p 64949
660
661UID            PID   TID  PPID TCNT STIME TTY          TIME CMD
66220020169     64949 64949   629   17 11:40:14 ?     00:00:00 com.example.jsleakwatcher
66320020169     64949   733   629   17 11:40:28 ?     00:00:00 com.example.jsleakwatcher
664...
665$ hidumper -p
666
667-------------------------------[processes]-------------------------------
668
669
670cmd is: ps -efT
671
672UID            PID   TID  PPID TCNT STIME TTY          TIME CMD
673root             1     1     0    1 10:46:59 ?     00:00:08 init --second-stage 2389791
674root             2     2     0  127 10:46:59 ?     00:00:24 [sysmgr-main]
675root             2     4     0  127 10:46:59 ?     00:00:00 [call_ebr]
676...
677```
678
679
680## Querying Network Information
681
682Run the **hidumper --net** command to obtain the network traffic information, network interface statistics, network port statistics, IP information, iptable information, and binder information. This capability is implemented by running system commands such as **netstat**, **ifconfig**, and **iptables**.
683
684The output is as follows:
685
686```shell
687$ hidumper --net
688
689-------------------------------[net traffic]-------------------------------
690
691Received Bytes:0
692Sent Bytes:51885
693
694-------------------------------[net]-------------------------------
695
696cmd is: netstat -nW  -> Run the netstat -nW command to query network information, such as the network connection, route table, and interface statistics.
697...
698```
699
700
701Run the **hidumper --net [pid]** command to obtain the network traffic information of a specified process.
702
703
704The output is as follows:
705
706
707```shell
708$ hidumper --net 1
709
710-------------------------------[net traffic]-------------------------------
711
712Received Bytes:0
713Sent Bytes:51885
714```
715
716
717## Querying Storage Information
718
719- Run the **hidumper --storage** command to obtain disk statistics, disk usage, file handle information, I/O traffic statistics, and mount information.
720
721The output is as follows:
722
723```shell
724$ hidumper --storage
725
726-------------------------------[storage]-------------------------------
727
728
729cmd is: storaged -u -p
730...
731```
732
733
734- Run the **hidumper --storage [pid]** command to obtain the I/O information of a specified process.
735
736
737The output is as follows:
738
739
740```shell
741$ hidumper --storage 1
742
743-------------------------------[storage io]-------------------------------
744
745
746/proc/1/io
747
748rchar: 28848175
749wchar: 4364169
750syscr: 16886
751syscw: 15866
752read_bytes: 30617600
753write_bytes: 10907648
754cancelled_write_bytes: 734003
755```
756
757
758The fields in the I/O information are described as follows:
759
760
761- **rchar**: total number of characters read by the process from the cache or directly since it starts, in bytes.
762
763- **wchar**: total number of characters written by the process from the cache or directly since it starts, in bytes.
764
765- **syscr**: number of **read** system calls executed by the process since it starts.
766
767- **syscw**: number of **write** system calls executed by the process since it starts.
768
769- **read_bytes**: number of bytes read by the process from the file system and network since it starts, in bytes.
770
771- **write_bytes**: number of bytes written by the process to the file system and network since it starts, in bytes.
772
773- **cancelled_write_bytes**: number of bytes that are not written due to write cancellation since the process starts, in bytes. Generally, the value of this field is 0 unless an error occurs when data is written to the disk or the write operation is interrupted.
774
775
776## Querying System Information
777
778- Run the **hidumper -lc** command to obtain the system information cluster list.
779
780The output is as follows:
781
782```shell
783$ hidumper -lc
784System cluster list:
785base                             system
786```
787
788- Run the **hidumper -c [System information cluster name]** command to obtain the information of a specified cluster.
789
790For example, run the **hidumper -c base** command to obtain the device information, kernel version, boot parameters, and boot time. The output is as follows:
791
792```shell
793-------------------------------[base]-------------------------------
794
795BuildId: ALN-AL00 5.0.1.XXX(XXX)   -> Device information
796ReleaseType: Beta1
797OsVersion: phone/HUAWEI/HUAWEI/ALN/OpenHarmony-5.0.1.XXX(Beta1)/ALN-AL10/ALN-AL10/XX/5.0.1.XXX/default
798DeviceType: phone
799...
800
801/proc/version
802
803Hongmeng version: HongMeng Kernel X.XX.XX  -> Kernel version
804
805/proc/cmdline   -> Boot parameters
806
807ohos.boot.post_data_blks=0x0 ohos.boot.ptn_last_blk=0x772AFFF ...
808
809cmd is: uptime -p
810
811up 0 weeks, 0 days, 5 hours, 27 minutes   -> Boot time
812```
813
814For example, run the **hidumper -c system** command to obtain the environment variables, kernel module, loaded kernel modules, slab, zone, vmstat, vmalloc, CPU frequency, and memory information. The output is as follows:
815
816```shell
817$ hidumper -c system
818
819-------------------------------[system]-------------------------------
820
821
822cmd is: printenv   -> Environment variables
823
824_=/system/bin/printenv
825LANG=en_US.UTF-8
826HOME=/root
827PULSE_STATE_PATH=/data/data/.pulse_dir/state
828OLDPWD=/
829PWD=/
830TMP=/data/local/mtp_tmp/
831PULSE_RUNTIME_PATH=/data/data/.pulse_dir/runtime
832...
833
834/proc/modules   -> Kernel module information
835
836modem_driver 1490944 24 - Live 0x0000000000000000
837hmtpp_freq_dal_kirin 20480 0 [permanent], Live 0x0000000000000000 (O)
838kconsole 20480 0 [permanent], Live 0x0000000000000000 (O)
839hmtpp_dal 40960 2 hmtpp_freq_dal_kirin, Live 0x0000000000000000 (O)
840...
841
842cmd is: lsmod  -> Loaded kernel module
843
844Module                  Size  Used by
845modem_driver         1490944  24
846hmtpp_freq_dal_kirin    20480  0 [permanent]
847kconsole               20480  0 [permanent]
848hmtpp_dal              40960  2 hmtpp_freq_dal_kirin
849...
850
851/proc/slabinfo   -> slab information
852
853slabinfo - version: 2.0
854#name       <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <num_pool> <sharedavail> <reclaimable>
855slab-[16]                  48459  54432     16    252      1 : tunables 0 0 0 : slabdata    215    216      4 0 0
856slab-[24]                  78315  83328     24    168      1 : tunables 0 0 0 : slabdata    496    496      4 0 0
857slab-[32]                   5834   9954     32    126      1 : tunables 0 0 0 : slabdata     79     79      4 0 0
858...
859
860/proc/zoneinfo   -> zone information
861
862Node 0, zone      DMA
863  per-node stats
864      nr_inactive_anon 419922
865      nr_active_anon 11737
866      nr_inactive_file 381289
867      nr_active_file 456643
868...
869
870/proc/vmstat   -> vmstat information
871
872workingset_refault_anon    63071
873workingset_refault_file        0
874workingset_activate_anon     1742
875workingset_activate_file        0
876...
877
878/proc/vmallocinfo   -> vmalloc information
879
8800x0000000000000000-0x0000000000000000    4096 of_iomap+0xe4/0xec pages=1 phys=0xfb21b000 ioremap
8810x0000000000000000-0x0000000000000000    4096 of_iomap+0xe4/0xec pages=1 phys=0xffb85000 ioremap
8820x0000000000000000-0x0000000000000000    4152 gen_pool_add_owner+0x48/0xc0 pages=2 vmalloc
8830x0000000000000000-0x0000000000000000    4096 of_iomap+0xe4/0xec pages=1 phys=0xee262000 ioremap
884...
885
886cmd is: cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq   -> CPU frequency information
887
8881430000
889
890cmd is: cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
891
8921530000
893
894cmd is: cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq
895
8961430000
897...
898
899-------------------------------[memory]-------------------------------     -> Memory information
900Total Memory Usage by PID:
901PID        Total Pss(xxx in SwapPss)    Total Vss    Total Rss    Total Uss           GL        Graph          Dma      PurgSum      PurgPin     Name
9021           4001(1672 in SwapPss) kB     59028 kB      5744 kB      1972 kB         0 kB         0 kB         0 kB         0 kB         0 kB     init
9032             50451(0 in SwapPss) kB 18014398163279052 kB     52088 kB     49448 kB         0 kB         0 kB         0 kB         0 kB         0 kB     sysmgr-main
90479             2741(0 in SwapPss) kB   2145468 kB      6052 kB      1292 kB         0 kB         0 kB         0 kB         0 kB         0 kB     crypto.elf
90580             8796(0 in SwapPss) kB   2156116 kB     12584 kB      6940 kB         0 kB         0 kB         0 kB         0 kB         0 kB     devmgr.elf
90685            96861(0 in SwapPss) kB  37180468 kB    100932 kB     94808 kB         0 kB         0 kB         0 kB         0 kB         0 kB     devhost.elf
907501            2256(0 in SwapPss) kB   2142484 kB      3892 kB      1620 kB         0 kB         0 kB         0 kB         0 kB         0 kB     hguard.elf
908586         1656(1412 in SwapPss) kB     32852 kB       744 kB       236 kB         0 kB         0 kB         0 kB         0 kB         0 kB     ueventd
909...
910```
911
912- Run the **hidumper -c** command to obtain all information clusters, including the **base** and **system** clusters.
913
914
915## Obtaining System Fault Logs
916
917Run the **hidumper -e** command to obtain the system fault log and print its file name and details.
918
919```shell
920$ hidumper -e
921
922-------------------------------[faultlog]-------------------------------
923
924
925/data/log/faultlog/faultlogger/syswarning-com.ohos.sceneboard-20020022-20241106104006  -> Fault log file name
926
927Generated by HiviewDFX@OpenHarmony  -> Fault log details
928...
929```
930
931
932## Obtaining IPC Information
933
934Run the **hidumper --ipc -a --start-stat/stop-stat/stat** command to obtain the IPC information within the collection period.
935
936The output is as follows:
937
938```shell
939$ hidumper --ipc -a --start-stat
940StartIpcStatistics pid:1473 success
941StartIpcStatistics pid:775 success
942StartIpcStatistics pid:1472 success
943...
944$ hidumper --ipc -a --stat
945GlobalStatisticsInfo
946CurrentPid:1473
947TotalCount:3
948TotalTimeCost:3783
949--------------------------------ProcessStatisticsInfo-------------------------------
950CallingPid:625
951CallingPidTotalCount:3
952...
953$ hidumper --ipc -a --stop-stat
954StopIpcStatistics pid:1473 success
955StopIpcStatistics pid:775 success
956StopIpcStatistics pid:1472 success
957...
958```
959
960Run the **hidumper --ipc [pid] --start-stat/stop-stat/stat** command to obtain the IPC information of a specified process within the collection period.
961
962The output is as follows:
963
964```shell
965$ hidumper --ipc 1473 --start-stat
966StartIpcStatistics pid:1473 success
967$ hidumper --ipc 1473 --stat
968GlobalStatisticsInfo
969CurrentPid:1473
970TotalCount:2
971TotalTimeCost:2214
972--------------------------------ProcessStatisticsInfo-------------------------------
973CallingPid:625
974CallingPidTotalCount:2
975CallingPidTotalTimeCost:2214
976~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~InterfaceStatisticsInfo~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
977DescriptorCode:OHOS.ILocalAbilityManager_6
978DescriptorCodeCount:2
979DescriptorCodeTimeCost:
980Total:2214 | Max:1444 | Min:770 | Avg:1107
981~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
982------------------------------------------------------------------------------------
983
984$ hidumper --ipc 1473 --stop-stat
985StopIpcStatistics pid:1473 success
986```
987
988
989## Compressing Exported Information
990
991HiDiumper provides the **--zip** command to export any type of exported information into a ZIP file in **/data/log/hidumper**. This command can be combined with other commands, and the file is named with the current timestamp, as shown in the following example.
992
993```shell
994$ hidumper --zip
995100%,[-],The result is:/data/log/hidumper/20250622-120444-166.zip
996```
997
998For example, if the system fault log obtained by running the **hidumper -e** command is large, you can compress the log as follows:
999
1000```shell
1001$ hidumper -e
1002
1003-------------------------------[faultlog]-------------------------------
1004
1005
1006/data/log/faultlog/faultlogger/syswarning-com.ohos.sceneboard-20020022-20241106104006  -> Fault log file name
1007
1008Generated by HiviewDFX@OpenHarmony
1009...  -> Fault log details, which are omitted due to excessive text content.
1010$ hidumper -e --zip
1011100%,[-],The result is:/data/log/hidumper/20250623-092235-087.zip
1012```
1013
1014## Common ArkUI Basic Information Display Capabilities
1015ArkUI provides the capability of obtaining information such as the component tree based on the enhanced hidumper.
1016### Obtaining Application Window Information
1017Run the following command to print the full window information. You can find the **WinId** of the corresponding window in the full information and pass it as a parameter to other commands to obtain related information.
1018
1019```shell
1020hdc shell hidumper -s WindowManagerService -a '-a'
1021```
1022 **Example**
1023```text
1024-------------------------------[ability]-------------------------------
1025
1026
1027----------------------------------WindowManagerService---------------------------------
1028-------------------------------------ScreenGroup 1-------------------------------------
1029WindowName             DisplayId Pid     WinId Type Mode Flag ZOrd Orientation [ x    y    w    h    ]
1030ScreenLockWindow       0         1274    2     2110 1    0    4    0           [ 0    0    720  1280 ]
1031SystemUi_NavigationBar 0         1274    5     2112 102  1    3    0           [ 0    1208 720  72   ]
1032SystemUi_StatusBar     0         1274    4     2108 102  1    2    0           [ 0    0    720  72   ]
1033settings0              0         10733   11    1    1    1    1    0           [ 0    72   720  1136 ]
1034EntryView              0         1546    8     2001 1    0    0    8           [ 0    0    720  1280 ]
1035---------------------------------------------------------------------------------------
1036SystemUi_VolumePanel   0         1274    3     2111 1    1    -1   0           [ 0    0    0    0    ]
1037SystemUi_DropdownPan   0         1274    6     2109 1    1    -1   0           [ 0    0    0    0    ]
1038SystemUi_BannerNotic   0         1274    7     2111 1    1    -1   0           [ 0    0    0    0    ]
1039RecentView             0         1546    9     2115 1    1    -1   0           [ 0    0    0    0    ]
1040imeWindow              0         1530    10    2105 1    1    -1   0           [ 0    0    0    0    ]
1041Focus window: 2
1042total window num: 10
1043```
1044
1045The following table lists the mapping between common **windowName** and built-in application windows.
1046|windowName|Built-in Application Window|
1047|---|---|
1048| EntryView|Home screen.|
1049| RecentView|Recent tasks.|
1050| SystemUi_NavigationBar|Three-key navigation.|
1051|  SystemUi_StatusBar|Status bar.|
1052| ScreenLockWindow|Lock screen.|
1053
1054### Obtaining an Application Component Tree
1055Run the following command to view information about all components in an application:
1056
1057```shell
1058hdc shell "hidumper -s WindowManagerService -a '-w %windowId% -element'"
1059```
1060**windowId** is the window ID of the target application.
1061
1062**Example**
1063
1064```text
1065hdc shell "hidumper -s WindowManagerService -a '-w 5 -element'"
1066
1067-------------------------------[ability]-------------------------------
1068----------------------------------WindowManagerService---------------------------------
1069WindowName: SystemUi_NavigationBar
1070DisplayId: 0
1071WinId: 5
1072Pid: 1274
1073Type: 2112
1074Mode: 102
1075Flag: 1
1076Orientation: 0
1077IsStartingWindow: false
1078FirstFrameCallbackCalled: 0
1079IsVisible: false
1080WindowRect: [ 0, 1208, 720, 72 ]
1081TouchHotAreas: [ 0, 1208, 720, 72 ]
1082  |-> RootElement childSize:1
1083    | ID: 0
1084    | elmtId: -1
1085    | retakeID: 16
1086    | Active: Y
1087    |-> StackElement childSize:2
1088      | ID: 1
1089      | elmtId: -1
1090      | retakeID: 14
1091      | Active: Y
1092      |-> StageElement childSize:1
1093        | ID: 2
1094        | elmtId: -1
1095        | retakeID: 13
1096        | Active: Y
1097        |-> PageElement childSize:1
1098          | ID: 3
1099          | elmtId: -1
1100          | retakeID: 569
1101          | Active: Y
1102......
1103```
1104
1105### Obtaining Component Information of a Specified Application Node
1106Run the following command to view component information of a node:
1107
1108```shell
1109hdc shell "hidumper -s WindowManagerService -a '-w %windowId% -element -lastpage %nodeID%'"
1110```
1111**windowId** indicates the window ID of the application, and **nodeID** indicates the ID of the specified node. You can obtain the **nodeID** by obtaining the target application component tree.
1112
1113**Example**
1114```text
1115hdc shell "hidumper -s WindowManagerService -a '-w 5 -element -lastpage 3'"
1116
1117-------------------------------[ability]-------------------------------
1118----------------------------------WindowManagerService---------------------------------
1119WindowName: SystemUi_NavigationBar
1120DisplayId: 0
1121WinId: 5
1122Pid: 1274
1123Type: 2112
1124Mode: 102
1125Flag: 1
1126Orientation: 0
1127IsStartingWindow: false
1128FirstFrameCallbackCalled: 0
1129IsVisible: false
1130WindowRect: [ 0, 1208, 720, 72 ]
1131TouchHotAreas: [ 0, 1208, 720, 72 ]
1132    |-> PageElement childSize:1
1133        | ID: 3
1134        | elmtId: -1
1135        | retakeID: 569
1136        | Active: Y
1137......
1138```
1139
1140### Obtaining the Inspector Tree of an Application
1141The **element/render** tree in the preceding example mainly contains multiple internal implementations, which cannot be mapped to components in the application code. You can print the Inspector tree to obtain the tree structure and basic information corresponding to the application components. The Inspector tree matches DevEco Testing and ArkUI Inspector in DevEco Studio.
1142
1143You need to enable ArkUI debug before using this functionality.
1144```shell
1145hdc shell param set persist.ace.testmode.enabled 1
1146```
1147**set**: command for setting; **persist.ace.testmode.enabled**: ArkUI debug switch name; **1**: the switch is set to **true** to enable the debug functionality.
1148
1149The command is as follows:
1150```shell
1151hdc shell "hidumper -s WindowManagerService -a '-w %windowId% -inspector'"
1152```
1153**Example**
1154
1155```text
1156hdc shell "hidumper -s WindowManagerService -a '-w 5 -inspector'"
1157
1158|-> rootstacktag childSize:1
1159| ID: 2100001
1160| compid:
1161| text:
1162| top: 72.000000
1163| left: 0.000000
1164| width: 0.000000
1165| height: 0.000000
1166| visible: 1
1167| clickable: 0
1168| checkable: 0
1169|-> Column childSize:1
1170| ID: 128
1171| compid:
1172| text:
1173| top: 72.000000
1174| left: 0.000000
1175| width: 720.000000
1176| height: 1136.000000
1177| visible: 1
1178| clickable: 0
1179| checkable: 0
1180|-> GridContainer childSize:1
1181| ID: 129
1182| compid:
1183| text:
1184| top: 72.000000
1185| left: 0.000000
1186| width: 720.000000
1187| height: 1136.000000
1188| visible: 1
1189| clickable: 0
1190| checkable: 0
1191|-> Column childSize:2
1192| ID: 130
1193| compid:
1194| text:
1195| top: 72.000000
1196| left: 0.000000
1197| width: 720.000000
1198| height: 180.000000
1199| visible: 1
1200| clickable: 0
1201| checkable: 0
1202
1203......
1204```
1205
1206### Obtaining Application Route Stack Information
1207
1208This command outputs the information about the application page route stack, which is sorted based on the stack creation sequence and parent-child relationship.
1209
1210> **NOTE**
1211>
1212> This command can be used only for applications that implement page routing through the [Navigation](../ui/arkts-navigation-navigation.md) component.
1213
1214The command is as follows:
1215
1216```shell
1217hidumper -s WindowManagerService -a '-w %windowId% -navigation -c'
1218```
1219**Example**
1220```text
1221hidumper -s WindowManagerService -a '-w 15 -navigation -c'
1222
1223-------------------------------[ability]-------------------------------
1224
1225
1226----------------------------------WindowManagerService--------------------------------
1227WindowName: myapplication0
1228DisplayId: 0
1229WinId: 12
1230Pid: 5908
1231Type: 1
1232Mode: 1
1233Flag: 0
1234Orientation: 0
1235IsStartingWindow: false
1236FirstFrameCallbackCalled: 1
1237VisibilityState: 0
1238Focusable: true
1239DecoStatus: true
1240IsPrivacyMode: false
1241isSnapshotSkip: 0
1242WindowRect: [ 0, 0, 720, 1280 ]
1243TouchHotAreas: [ 0, 0, 720, 1280 ]
1244bundleName:com.example.myapplication
1245moduleName:entry
1246 LastRequestVsyncTime: 2351504075334
1247 transactionFlags: [ 5908, 0 ]
1248 last vsyncId: 527
1249Navigation number: 4
1250|-> Navigation ID: 7, Depth: 7, Mode: "SPLIT", NavDestinations:
1251  | [0]{ ID: 0, Name: "pageOne", Mode: "STANDARD", IsOnShow: "FALSE" }
1252  | [1]{ ID: 1, Name: "pageTwo", Mode: "STANDARD", IsOnShow: "TRUE" }
1253|-> Navigation ID: 19, Depth: 7, Mode: "AUTO (STACK)", NavDestinations:
1254  |-> Navigation ID: 28, Depth: 11, Mode: "STACK", NavDestinations:
1255  | [0]{ ID: 2, Name: "pageOne", Mode: "STANDARD", IsOnShow: "FALSE" }
1256  | [1]{ ID: 3, Name: "pageTwo", Mode: "DIALOG", IsOnShow: "FALSE" }
1257    |-> Navigation ID: 123, Depth: 11, Mode: "AUTO (SPLIT)", NavDestinations:
1258      | [0]{ ID: 4, Name: "pageFive", Mode: "STANDARD", IsOnShow: "FALSE" }
1259      | [1]{ ID: 5, Name: "pageSix", Mode: "STANDARD", IsOnShow: "FALSE" }
1260  | [2]{ ID: 6, Name: "pageThree", Mode: "STANDARD", IsOnShow: "TRUE" }
1261```
1262> **NOTE**
1263>
1264> For the same-level nodes, the node displayed at the bottom is the stack top node.
1265
1266## FAQs
1267
1268
1269### What is the difference between the memory usage queried by hidumper and that by the HiDebug APIs?
1270
1271**Symptom**
1272
1273The memory information obtained by the **hidumper --mem** commands is different from that by the [HiDebug](../reference/apis-performance-analysis-kit/js-apis-hidebug.md) APIs.
1274
1275**Possible Causes and Solution**
1276
1277The following table compares the memory information obtained by the **hidumper --mem** commands and that by the HiDebug APIs.
1278
1279**Table 1**
1280
1281| Command/API| Usage Scenario| Data Source| Whether to Export Graphics Memory|
1282| -------- | -------- | -------- | -------- |
1283| hidumper --mem | Obtain the memory usage of all processes.| System node: **/proc/pid/smaps_rollup**| Yes|
1284| hidumper --mem [pid] | Obtain the memory usage of a process.| System node: **/proc/pid/smaps**| Yes|
1285| hidumper --mem-smaps [pid] | Obtain the detailed memory usage of a process.| System node: **/proc/pid/smaps_rollup**| No|
1286| [hidebug.getAppNativeMemInfo](../reference/apis-performance-analysis-kit/js-apis-hidebug.md#hidebuggetappnativememinfo12) | Obtain the memory usage of an application.| System node: **/proc/pid/smaps_rollup**| No|
1287
1288To obtain the graphics memory using HiDebug, see [HiDebug Overview](hidebug-guidelines.md).
1289
1290
1291### What should I do if hidumper fails to obtain the process VM memory and leaked object information?
1292
1293**Symptom**
1294
1295No file is generated when the **hidumper --mem-jsheap [pid] --leakobj** command is executed.
1296
1297**Possible Causes and Solution**
1298
1299The **hidumper --mem-jsheap \[pid] --leakobj** command depends on [JsLeakWatcher](../reference/apis-performance-analysis-kit/js-apis-jsleakwatcher.md). The application must enable leak detection through the **JsLeakWatcher** API. For details, see [Querying VM Heap Memory](#querying-vm-heap-memory).
1300