subsys-dfx-hidumper.md 5.5 KB
Newer Older
S
shawn_he 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
# HiDumper Development


## Overview


### Introduction

HiDumper is a tool provided by OpenHarmony for developers, testers, and IDE tool engineers to obtain system information necessary for analyzing and locating faults. This section applies only to the standard system.

### Source Code Directories

  
```
/base/hiviewdfx/hidumper
├── frameworks           # Framework code
│   ├── native           # Core function code
│   │  │── include        # Header files
│   │  │── src           # Source files
│   │      │── common    # Common function code
│   │      │── executor  # Process executor code
│   │      │── factory   # Factory code
│   │      │── manager   # Core manager code
│   │      │── util      # Utility source code
│── sa_profile           # HiDumper SA profile
│── services             # HiDumper service code
│   │── native           # C++ service code
│   │── zidl             # Communication function
│   │   │── include      # Header files of the communication function
│   │   │── src          # Source code of the communication function
├── test                 # Test cases
│   ├── unittest         # Unit test code
│   ├── moduletest       # Module-level test code
```


## Usage


### Command-Line Options

  **Table 1** HiDumper command-line options

| Option| Description| 
| -------- | -------- |
| -h | Shows the help Information.| 
| -t [timeout] | Specifies the timeout period, in seconds. The default value is **30**. Value **0** indicates no timeout limit.| 
| -lc | Shows the system information cluster list.| 
| -ls | Shows the system ability list.| 
| -c | Exports system cluster information.| 
| -c [base system] | Exports system cluster information based on **base** or **system** tags.| 
| -s | Exports all system ability information.| 
| -s [SA0 SA1] | Exports ability information corresponding to SA0 and SA1.| 
| -s [SA] -a ['-h'] | Exports the system ability information **SA** using the **-h** parameter.| 
| -e | Exports crash logs generated by the Faultlogger module.| 
| --net | Exports network information.| 
| --storage | Exports storage information.| 
| -p | Exports the process list and all process information.| 
| -p [pid] | Exports all information about a specified process.| 
| --cpuusage [pid] | Exports the CPU usage information based on **pid**.| 
| --cpufreq | Exports the actual CPU frequency.| 
| --mem [pid] | Exports the memory usage information based on **pid**.| 
| --zip | Compresses the exported information to a specified folder.| 


### Development Example

HiDumper helps you export basic system information to locate and analyze faults. Complex parameters passed to sub-services and abilities must be enclosed in double quotation marks.

The procedure is as follows:

1. Access the device CLI, and run the **hidumper -h** command to obtain the help information, which includes basic information and function syntax.
     
   ```
   hidumper -h
   ```

2. Run the **hidumper -lc** command to obtain the system information cluster list.
     
   ```
   hidumper -lc
   ```

3. Run the **hidumper -c** command to obtain all information that is classified by **base** and **system**.
     
   ```
   hidumper -c
   ```

4. Run the **hidumper -c [base | system]** to obtain the system cluster information that is classified by **base** or **system**.
     
   ```
   hidumper -c base
   hidumper -c system
   ```

5. Run the **hidumper -ls** command to obtain the system ability list.
     
   ```
   hidumper -ls
   ```

6. Run the **hidumper -s** command to obtain all system ability information.
     
   ```
   hidumper -s
   ```

7. Run the **hidumper -s 3301 -a "-h"** command to obtain the help information about the ability whose ID is **3301**.
     
   ```
   hidumper -s 3301 -a "-h"
   ```

8. Run the **hidumper -s 3008** command to obtain all information about the ability whose ID is **3008**.
     
   ```
   hidumper -s 3008
   ```

9. Run the **hidumper -e** command to obtain the crash information generated by the Faultlog module.
     
   ```
   hidumper -e
   ```

10. Run the **hidumper --net** command to obtain network information.
     
   ```
   hidumper --net
   ```

11. Run the **hidumper --storage** command to obtain storage information.
     
   ```
   hidumper --storage
   ```

12. Run the **hidumper -p** command to obtain process information, including the list and information of processes and threads.
     
   ```
   hidumper -p
   ```

13. Run the **hidumper -p 1024** command to obtain information about the process whose PID is **1024**.
     
   ```
   hidumper -p 1024
   ```

14. Run the **hidumper --cpuusage [pid]** command to obtain the CPU usage information of the process whose PID has been specified.
     
   ```
   hidumper --cpuusage
   hidumper --cpuusage 1024
   ```

15. Run the **hidumper --cpufreq** command to obtain the actual operating frequency of each CPU core.
     
   ```
   hidumper --cpufreq
   ```

16. Run the **hidumper --mem [pid]** command to obtain all memory usage information of the process whose PID has been specified.
     
   ```
   hidumper --mem [pid]
   ```

17. Run the **hidumper --zip** command to compress data to the **/data/dumper** directory.
     
   ```
   hidumper --zip
   ```

18. Run the **hidumper -t timeout** command to set the timeout period, in seconds. The default value is **30**. Value **0** indicates no timeout limit.
     
   ```
   hidumper -t [timeout]
   ```