1 /*
2  * Copyright (C) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "util/config_data.h"
16 #include <pubdef.h>
17 #include "common/dumper_constant.h"
18 namespace OHOS {
19 namespace HiviewDFX {
20 const std::string ConfigData::CONFIG_NAME_SPLIT = "_";
21 const std::string ConfigData::CONFIG_GROUP = "group";
22 const std::string ConfigData::CONFIG_GROUP_ = ConfigData::CONFIG_GROUP + ConfigData::CONFIG_NAME_SPLIT;
23 const std::string ConfigData::CONFIG_MINIGROUP = "groupmini";
24 const std::string ConfigData::CONFIG_MINIGROUP_ = ConfigData::CONFIG_MINIGROUP + ConfigData::CONFIG_NAME_SPLIT;
25 const std::string ConfigData::CONFIG_DUMPER = "dumper";
26 const std::string ConfigData::CONFIG_DUMPER_ = ConfigData::CONFIG_DUMPER + ConfigData::CONFIG_NAME_SPLIT;
27 const std::string ConfigData::CONFIG_DUMPER_LIST = ConfigData::CONFIG_DUMPER_ + "list";
28 const std::string ConfigData::CONFIG_DUMPER_LIST_ = ConfigData::CONFIG_DUMPER_LIST + ConfigData::CONFIG_NAME_SPLIT;
29 const std::string ConfigData::CONFIG_DUMPER_LIST_SERVICE = ConfigData::CONFIG_DUMPER_LIST_ + "service";
30 const std::string ConfigData::CONFIG_DUMPER_LIST_SYSTEM_ABILITY = ConfigData::CONFIG_DUMPER_LIST_ + "system_ability";
31 const std::string ConfigData::CONFIG_DUMPER_LIST_SYSTEM = ConfigData::CONFIG_DUMPER_LIST_ + "system";
32 const std::string ConfigData::CONFIG_DUMPER_JSHEAP_MEMORY = ConfigData::CONFIG_DUMPER_ + "jsheap_memory";
33 const std::string ConfigData::CONFIG_GROUP_IPC_STAT = ConfigData::CONFIG_GROUP_ + "ipc";
34 const std::string ConfigData::CONFIG_GROUP_CPU_FREQ = ConfigData::CONFIG_GROUP_ + "cpufreq";
35 const std::string ConfigData::CONFIG_GROUP_CPU_USAGE = ConfigData::CONFIG_GROUP_ + "cpuusage";
36 const std::string ConfigData::CONFIG_GROUP_LOG = ConfigData::CONFIG_GROUP_ + "log";
37 const std::string ConfigData::CONFIG_GROUP_LOG_ = ConfigData::CONFIG_GROUP_LOG + ConfigData::CONFIG_NAME_SPLIT;
38 const std::string ConfigData::CONFIG_GROUP_LOG_KERNEL = ConfigData::CONFIG_GROUP_LOG_ + "kernel";
39 const std::string ConfigData::CONFIG_GROUP_LOG_HILOG = ConfigData::CONFIG_GROUP_LOG_ + "hilog";
40 const std::string ConfigData::CONFIG_GROUP_LOG_INIT = ConfigData::CONFIG_GROUP_LOG_ + "init";
41 const std::string ConfigData::CONFIG_GROUP_MEMORY = ConfigData::CONFIG_GROUP_ + "memory";
42 const std::string ConfigData::CONFIG_GROUP_STORAGE = ConfigData::CONFIG_GROUP_ + "storage";
43 const std::string ConfigData::CONFIG_GROUP_STORAGE_IO = ConfigData::CONFIG_GROUP_ + "storage io";
44 const std::string ConfigData::CONFIG_GROUP_NET = ConfigData::CONFIG_GROUP_ + "net";
45 const std::string ConfigData::CONFIG_GROUP_NET_TRAFFIC = ConfigData::CONFIG_GROUP_ + "net traffic";
46 const std::string ConfigData::CONFIG_GROUP_SERVICE = ConfigData::CONFIG_GROUP_ + "service";
47 const std::string ConfigData::CONFIG_GROUP_ABILITY = ConfigData::CONFIG_GROUP_ + "ability";
48 const std::string ConfigData::CONFIG_GROUP_SYSTEM = ConfigData::CONFIG_GROUP_ + "system";
49 const std::string ConfigData::CONFIG_GROUP_SYSTEM_ = ConfigData::CONFIG_GROUP_SYSTEM + ConfigData::CONFIG_NAME_SPLIT;
50 const std::string ConfigData::CONFIG_GROUP_SYSTEM_BASE = ConfigData::CONFIG_GROUP_SYSTEM_ + "base";
51 const std::string ConfigData::CONFIG_GROUP_SYSTEM_SYSTEM = ConfigData::CONFIG_GROUP_SYSTEM_ + "system";
52 const std::string ConfigData::CONFIG_GROUP_PROCESSES = ConfigData::CONFIG_GROUP_ + "processes";
53 const std::string ConfigData::CONFIG_GROUP_PROCESSES_ENG = ConfigData::CONFIG_GROUP_ + "eng_processes";
54 const std::string ConfigData::CONFIG_GROUP_PROCESSES_PID = ConfigData::CONFIG_GROUP_ + "pid_processes";
55 const std::string ConfigData::CONFIG_GROUP_PROCESSES_PID_ENG = ConfigData::CONFIG_GROUP_ + "pid_eng_processes";
56 const std::string ConfigData::CONFIG_GROUP_FAULT_LOG = ConfigData::CONFIG_GROUP_ + "faultlog";
57 const std::string ConfigData::CONFIG_GROUP_STACK = ConfigData::CONFIG_GROUP_ + "stack";
58 const std::string ConfigData::CONFIG_GROUP_TEST = ConfigData::CONFIG_GROUP_ + "test";
59 const std::string ConfigData::STR_ABILITY = "ability";
60 const std::string ConfigData::STR_BASE = "base";
61 const std::string ConfigData::STR_SERVICE = "service";
62 const std::string ConfigData::STR_SYSTEM = "system";
63 
64 const ConfigData::ItemCfg ConfigData::baseInfoDumper_[] = {
65     {
66         "dumper_base_info", "Base Information", "", "",
67         DumperConstant::API_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
68     },
69     {
70         "", "", "", "",
71         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
72     },
73 };
74 
75 const ConfigData::ItemCfg ConfigData::kernelVersionDumper_[] = {
76     {
77         "dumper_kernel_version", "Kernel Version", "/proc/version", "",
78         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
79     },
80     {
81         "", "", "", "",
82         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
83     },
84 };
85 
86 const ConfigData::ItemCfg ConfigData::cmdlineDumper_[] = {
87     {
88         "dumper_command_line", "Command Line", "/proc/cmdline", "",
89         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
90     },
91     {
92         "", "", "", "",
93         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
94     },
95 };
96 
97 const ConfigData::ItemCfg ConfigData::kernelWakeSourcesDumper_[] = {
98     {
99         "dumper_kernel_wake_sources", "KERNEL WAKE SOURCES", "/sys/kernel/debug/wakeup_sources", "",
100         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
101     },
102     {
103         "", "", "", "",
104         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
105     },
106 };
107 
108 const ConfigData::ItemCfg ConfigData::kernelCpufreqDumper_[] = {
109     {
110         "dumper_kernel_cpu_freq", "KERNEL CPUFREQ", "cat /sys/devices/system/cpu/cpu%cpuid/cpufreq/cpuinfo_cur_freq",
111         "", DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
112     },
113     {
114         "", "", "", "",
115         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
116     },
117     {
118         "", "", "cat /sys/devices/system/cpu/cpu%cpuid/cpufreq/cpuinfo_max_freq", "",
119         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
120     },
121     {
122         "", "", "", "",
123         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
124     },
125 };
126 
127 const ConfigData::ItemCfg ConfigData::uptimeDumper_[] = {
128     {
129         "dumper_uptime", "Up Time", "uptime -p", "",
130         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
131     },
132     {
133         "", "", "", "",
134         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
135     },
136 };
137 
138 const ConfigData::ItemCfg ConfigData::cpuUsageDumper_[] = {
139     {
140         "dumper_cpu_usage", "CPU Usage", "%pid", "",
141         DumperConstant::CPU_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
142     },
143     {
144         "", "", "", "",
145         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
146     },
147 };
148 
149 const ConfigData::ItemCfg ConfigData::cpuFreqDumper_[] = {
150     {
151         "dumper_cpu_freq", "CPU Frequency", "cat /sys/devices/system/cpu/cpu%cpuid/cpufreq/cpuinfo_cur_freq", "",
152         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
153     },
154     {
155         "", "", "", "",
156         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
157     },
158     {
159         "", "", "cat /sys/devices/system/cpu/cpu%cpuid/cpufreq/cpuinfo_max_freq", "",
160         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
161     },
162     {
163         "", "", "", "",
164         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
165     },
166 };
167 
168 const ConfigData::ItemCfg ConfigData::memDumper_[] = {
169     {
170         "dumper_mem", "Memory Information", "%pid", "",
171         DumperConstant::MEMORY_DUMPER, DumperConstant::NONE, DumperConstant::LOOP, ""
172     },
173     {
174         "", "", "", "",
175         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::LOOP, ""
176     },
177 };
178 
179 const ConfigData::ItemCfg ConfigData::jsHeapMemDumper_[] = {
180     {
181         CONFIG_DUMPER_JSHEAP_MEMORY, "jsheap Memory Information", "%pid", "",
182         DumperConstant::JSHEAP_MEMORY_DUMPER, DumperConstant::NONE, DumperConstant::LOOP, ""
183     },
184     {
185         "", "", "", "",
186         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::LOOP, ""
187     },
188 };
189 
190 const ConfigData::ItemCfg ConfigData::envDumper_[] = {
191     {
192         "dumper_env", "Environment Variable", "printenv", "",
193         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
194     },
195     {
196         "", "", "", "",
197         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
198     },
199 };
200 
201 const ConfigData::ItemCfg ConfigData::kernelModuleDumper_[] = {
202     {
203         "dumper_kernel_module", "Kernel Module", "/proc/modules", "",
204         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
205     },
206     {
207         "", "", "", "",
208         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
209     },
210     {
211         "", "", "lsmod", "",
212         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
213     },
214     {
215         "", "", "", "",
216         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
217     },
218 };
219 
220 const ConfigData::ItemCfg ConfigData::dumpFormatVersionDumper_[] = {
221     {
222         "dumper_dump_format_version", "HiDumper Version", "HiDumper version:x.x", "",
223         DumperConstant::VERSION_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
224     },
225     {
226         "", "", "", "",
227         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
228     },
229 };
230 
231 const ConfigData::ItemCfg ConfigData::slabinfoDumper_[] = {
232     {
233         "dumper_slabinfo", "SLAB INFO", "/proc/slabinfo", "",
234         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
235     },
236     {
237         "", "", "", "",
238         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
239     },
240 };
241 
242 const ConfigData::ItemCfg ConfigData::ldkslabinfoDumper_[] = {
243     {
244         "dumper_ldkslabinfo", "LDK SLAB INFO", "/proc/devhost/root/slabinfo", "",
245         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
246     },
247     {
248         "", "", "", "",
249         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
250     },
251 };
252 
253 const ConfigData::ItemCfg ConfigData::zoneinfoDumper_[] = {
254     {
255         "dumper_zoneinfo", "ZONE INFO", "/proc/zoneinfo", "",
256         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
257     },
258     {
259         "", "", "", "",
260         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
261     },
262 };
263 
264 const ConfigData::ItemCfg ConfigData::vmStatDumper_[] = {
265     {
266         "dumper_vmstat", "VIRTUAL MEMORY STATS", "/proc/vmstat", "",
267         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
268     },
269     {
270         "", "", "", "",
271         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
272     },
273 };
274 
275 const ConfigData::ItemCfg ConfigData::vmAllocInfoDumper_[] = {
276     {
277         "dumper_vmallocinfo", "VIRTUAL MEMORY STATS", "/proc/vmallocinfo", "",
278         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
279     },
280     {
281         "", "", "", "",
282         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
283     },
284 };
285 
286 const ConfigData::ItemCfg ConfigData::crashDumper_[] = {
287     {
288         "dumper_crash", "Crash Log", "/data/log/faultlog/faultlogger", "",
289         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
290     },
291     {
292         "", "", "", "",
293         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
294     },
295 };
296 
297 const ConfigData::ItemCfg ConfigData::kernelLogDumper_[] = {
298     {
299         "dumper_kernel_log", "Kernel Log", "dmesg", "",
300         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::LOOP, ""
301     },
302     {
303         "", "", "", "",
304         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::LOOP, ""
305     },
306 };
307 
308 const ConfigData::ItemCfg ConfigData::hilogDumper_[] = {
309     {
310         "dumper_hilog", "Hilog", "hilog -x --exit", "",
311         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::LOOP, ""
312     },
313     {
314         "", "", "", "",
315         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::LOOP, ""
316     },
317 };
318 
319 const ConfigData::ItemCfg ConfigData::portDumper_[] = {
320     {
321         "dumper_port", "Port Information", "netstat -nW", "",
322         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
323     },
324     {
325         "", "", "", "",
326         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
327     },
328 };
329 
330 const ConfigData::ItemCfg ConfigData::packetDumper_[] = {
331     {
332         "dumper_packet", "Packet State", "/proc/net/dev", "",
333         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
334     },
335     {
336         "", "", "", "",
337         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
338     },
339     {
340         "", "", "/proc/net/xt_qtaguid/iface_stat_all", "",
341         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
342     },
343     {
344         "", "", "", "",
345         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
346     },
347     {
348         "", "", "/proc/net/xt_qtaguid/iface_stat_fmt", "",
349         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
350     },
351     {
352         "", "", "", "",
353         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
354     },
355     {
356         "", "", "/proc/net/xt_qtaguid/ctrl", "",
357         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
358     },
359     {
360         "", "", "", "",
361         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
362     },
363     {
364         "", "", "/proc/net/xt_qtaguid/stats", "",
365         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
366     },
367     {
368         "", "", "", "",
369         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
370     },
371 };
372 
373 const ConfigData::ItemCfg ConfigData::ipDumper_[] = {
374     {
375         "dumper_ip", "IP v4/6 State", "ifconfig -a", "",
376         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
377     },
378     {
379         "", "", "", "",
380         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
381     },
382 };
383 
384 const ConfigData::ItemCfg ConfigData::ipTableDumper_[] = {
385     {
386         "dumper_ip_table", "IPTable v4/6 Information", "iptables -L -nvx", "",
387         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
388     },
389     {
390         "", "", "", "",
391         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
392     },
393     {
394         "", "", "ip6tables -L -nvx", "",
395         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
396     },
397     {
398         "", "", "", "",
399         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
400     },
401     {
402         "", "", "iptables -t nat -L -nvx", "",
403         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
404     },
405     {
406         "", "", "", "",
407         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
408     },
409     {
410         "", "", "iptables -t mangle -L -nvx", "",
411         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
412     },
413     {
414         "", "", "", "",
415         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
416     },
417     {
418         "", "", "ip6tables -t mangle -L -nvx", "",
419         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
420     },
421     {
422         "", "", "", "",
423         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
424     },
425     {
426         "", "", "iptables -t raw -L -nvx", "",
427         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
428     },
429     {
430         "", "", "", "",
431         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
432     },
433     {
434         "", "", "ip6tables -t raw -L -nvx", "",
435         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
436     },
437     {
438         "", "", "", "",
439         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
440     },
441 };
442 
443 const ConfigData::ItemCfg ConfigData::routeTableDumper_[] = {
444     {
445         "dumper_route_table", "IP Table v4/6 Information", "/data/misc/net/rt_tables", "",
446         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
447     },
448     {
449         "", "", "", "",
450         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
451     },
452 };
453 
454 const ConfigData::ItemCfg ConfigData::ipcDumper_[] = {
455     {
456         "dumper_ipc", "IPC Information", "/sys/kernel/debug/binder/failed_transaction_log", "",
457         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
458     },
459     {
460         "", "", "", "",
461         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
462     },
463     {
464         "", "", "/sys/kernel/debug/binder/transaction_log", "",
465         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
466     },
467     {
468         "", "", "", "",
469         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
470     },
471     {
472         "", "", "/sys/kernel/debug/binder/transactions", "",
473         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
474     },
475     {
476         "", "", "", "",
477         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
478     },
479     {
480         "", "", "/sys/kernel/debug/binder/stats", "",
481         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
482     },
483     {
484         "", "", "", "",
485         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
486     },
487     {
488         "", "", "/sys/kernel/debug/binder/state", "",
489         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
490     },
491     {
492         "", "", "", "",
493         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
494     },
495 };
496 
497 const ConfigData::ItemCfg ConfigData::ipRulesDumper_[] = {
498     {
499         "dumper_ip_rules", "IP RULES v4/6", "ip link", "",
500         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
501     },
502     {
503         "", "", "", "",
504         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
505     },
506     {
507         "", "", "ip -4 addr show", "",
508         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
509     },
510     {
511         "", "", "", "",
512         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
513     },
514     {
515         "", "", "ip -6 addr show", "",
516         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
517     },
518     {
519         "", "", "", "",
520         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
521     },
522     {
523         "", "", "ip rule show", "",
524         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
525     },
526     {
527         "", "", "", "",
528         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
529     },
530     {
531         "", "", "ip -6 rule show", "",
532         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
533     },
534     {
535         "", "", "", "",
536         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
537     },
538 };
539 
540 const ConfigData::ItemCfg ConfigData::storageStateDumper_[] = {
541     {
542         "dumper_storage_state", "Storage State", "storaged -u -p", "",
543         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
544     },
545     {
546         "", "", "", "",
547         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
548     },
549 };
550 
551 const ConfigData::ItemCfg ConfigData::blockDumper_[] = {
552     {
553         "dumper_block", "Block Information", "df -k", "",
554         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
555     },
556     {
557         "", "", "", "",
558         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
559     },
560 };
561 
562 const ConfigData::ItemCfg ConfigData::fileDumper_[] = {
563     {
564         "dumper_file", "File Information", "lsof", "",
565         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
566     },
567     {
568         "", "", "", "",
569         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
570     },
571 };
572 
573 const ConfigData::ItemCfg ConfigData::topIoDumper_[] = {
574     {
575         "dumper_top_io", "TOP IO Information", "iotop -n 1 -m 100", "",
576         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, "",
577     },
578     {
579         "", "", "", "",
580         DumperConstant::FILE_FORMAT_DUMP_FILTER, DumperConstant::LEVEL_ALL, DumperConstant::NONE, ""
581     },
582     {
583         "", "", "", "",
584         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
585     },
586 };
587 
588 const ConfigData::ItemCfg ConfigData::mountsDumper_[] = {
589     {
590         "dumper_mounts", "Mount List", "/proc/mounts", "",
591         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
592     },
593     {
594         "", "", "", "",
595         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
596     },
597 };
598 
599 const ConfigData::ItemCfg ConfigData::threadsDumper_[] = {
600     {
601         "dumper_threads", "Processes/Threads List", "ps -efT", "",
602         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
603     },
604     {
605         "", "", "", "",
606         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
607     },
608 };
609 
610 const ConfigData::ItemCfg ConfigData::threadsPidDumper_[] = {
611     {
612         "dumper_threads_pid", "Processes/Threads List", "ps -efT -p %pid", "",
613         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
614     },
615     {
616         "", "", "", "",
617         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
618     },
619 };
620 
621 const ConfigData::ItemCfg ConfigData::smapDumper_[] = {
622     {
623         "dumper_smap", "Process SMAP Information", "/proc/%pid/smaps", "",
624         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::LOOP, ""
625     },
626     {
627         "", "", "", "",
628         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::LOOP, ""
629     },
630 };
631 
632 const ConfigData::ItemCfg ConfigData::mapDumper_[] = {
633     {
634         "dumper_map", "Process MAP Information", "/proc/%pid/maps", "",
635         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::LOOP, ""
636     },
637     {
638         "", "", "", "",
639         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::LOOP, ""
640     },
641 };
642 
643 const ConfigData::ItemCfg ConfigData::blockChannelDumper_[] = {
644     {
645         "dumper_block_channel", "Block Channel", "/proc/%pid/wchan", "",
646         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
647     },
648     {
649         "", "", "", "",
650         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
651     },
652 };
653 
654 const ConfigData::ItemCfg ConfigData::excuteTimeDumper_[] = {
655     {
656         "dumper_excute_time", "Excute Time", "ps -o \"TIME\" -p %pid", "",
657         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
658     },
659     {
660         "", "", "", "",
661         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
662     },
663 };
664 
665 const ConfigData::ItemCfg ConfigData::mountInfoDumper_[] = {
666     {
667         "dumper_mount_info", "Mount Information", "/proc/%pid/mountinfo", "",
668         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::LOOP, ""
669     },
670     {
671         "", "", "", "",
672         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::LOOP, ""
673     },
674 };
675 
676 const ConfigData::ItemCfg ConfigData::systemAbilityDumper_[] = {
677     {
678         "dumper_system_ability", "System Ability Information", ConfigData::STR_ABILITY, "",
679         DumperConstant::SA_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
680     },
681     {
682         "", "", "", "",
683         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
684     },
685 };
686 
687 const ConfigData::ItemCfg ConfigData::stackDumper_[] = {
688     {
689         "dumper_stack", "Dump Stack Info", "dumpcatcher -p %pid", "",
690         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
691     },
692     {
693         "", "", "", "",
694         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
695     },
696 };
697 
698 const ConfigData::ItemCfg ConfigData::listServiceDumper_[] = {
699     {
700         ConfigData::CONFIG_DUMPER_LIST_SERVICE, "list service", ConfigData::STR_SERVICE, "",
701         DumperConstant::LIST_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
702     },
703     {
704         "", "", "", "",
705         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
706     },
707 };
708 
709 const ConfigData::ItemCfg ConfigData::listSystemAbilityDumper_[] = {
710     {
711         ConfigData::CONFIG_DUMPER_LIST_SYSTEM_ABILITY, "list system ability", ConfigData::STR_ABILITY, "",
712         DumperConstant::LIST_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
713     },
714     {
715         "", "", "", "",
716         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
717     },
718 };
719 
720 const ConfigData::ItemCfg ConfigData::listSystemDumper_[] = {
721     {
722         ConfigData::CONFIG_DUMPER_LIST_SYSTEM, "list system", ConfigData::STR_SYSTEM, "",
723         DumperConstant::LIST_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
724     },
725     {
726         "", "", "", "",
727         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
728     },
729 };
730 
731 const ConfigData::ItemCfg ConfigData::testDumper_[] = {
732     {
733         "dumper_test", "test used dumper", "/data/local/tmp/hidumper_mockdata_0001.txt", "",
734         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
735     },
736     {
737         "", "", "", "",
738         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
739     },
740     {
741         "", "", "cat /data/local/tmp/hidumper_mockdata_0002.txt", "",
742         DumperConstant::CMD_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
743     },
744     {
745         "", "", "", "",
746         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
747     },
748 };
749 
750 const ConfigData::ItemCfg ConfigData::ioDumper_[] = {
751     {
752         "dumper_io_info", "io information", "/proc/%pid/io", "",
753         DumperConstant::FILE_DUMPER, DumperConstant::NONE, DumperConstant::NONE,""
754     },
755     {
756         "", "", "", "",
757         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
758     },
759 };
760 
761 const ConfigData::ItemCfg ConfigData::trafficDumper_[] = {
762     {
763         "dumper_traffic", "Traffic Information", "%pid", "",
764         DumperConstant::TRAFFIC_DUMPER, DumperConstant::NONE, DumperConstant::NONE, ""
765     },
766     {
767         "", "", "", "",
768         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
769     },
770 };
771 
772 
773 const ConfigData::ItemCfg ConfigData::ipcStatDumper_[] = {
774     {
775         "dumper_ipc_stat", "IPC stat Information", "%pid", "",
776         DumperConstant::IPC_STAT_DUMPER, DumperConstant::NONE, DumperConstant::NONE,""
777     },
778     {
779         "", "", "", "",
780         DumperConstant::FD_OUTPUT, DumperConstant::NONE, DumperConstant::NONE, ""
781     },
782 };
783 
784 const ConfigData::DumperCfg ConfigData::dumpers_[] = {
785     {.name_ = baseInfoDumper_[0].name_,
786      .desc_ = baseInfoDumper_[0].desc_,
787      .list_ = baseInfoDumper_,
788      .size_ = ARRAY_SIZE(baseInfoDumper_)},
789     {.name_ = kernelVersionDumper_[0].name_,
790      .desc_ = kernelVersionDumper_[0].desc_,
791      .list_ = kernelVersionDumper_,
792      .size_ = ARRAY_SIZE(kernelVersionDumper_)},
793     {.name_ = cmdlineDumper_[0].name_,
794      .desc_ = cmdlineDumper_[0].desc_,
795      .list_ = cmdlineDumper_,
796      .size_ = ARRAY_SIZE(cmdlineDumper_)},
797     {.name_ = kernelWakeSourcesDumper_[0].name_,
798      .desc_ = kernelWakeSourcesDumper_[0].desc_,
799      .list_ = kernelWakeSourcesDumper_,
800      .size_ = ARRAY_SIZE(kernelWakeSourcesDumper_)},
801     {.name_ = kernelCpufreqDumper_[0].name_,
802      .desc_ = kernelCpufreqDumper_[0].desc_,
803      .list_ = kernelCpufreqDumper_,
804      .size_ = ARRAY_SIZE(kernelCpufreqDumper_)},
805     {.name_ = uptimeDumper_[0].name_,
806      .desc_ = uptimeDumper_[0].desc_,
807      .list_ = uptimeDumper_,
808      .size_ = ARRAY_SIZE(uptimeDumper_)},
809     {.name_ = cpuUsageDumper_[0].name_,
810      .desc_ = cpuUsageDumper_[0].desc_,
811      .list_ = cpuUsageDumper_,
812      .size_ = ARRAY_SIZE(cpuUsageDumper_)},
813     {.name_ = cpuFreqDumper_[0].name_,
814      .desc_ = cpuFreqDumper_[0].desc_,
815      .list_ = cpuFreqDumper_,
816      .size_ = ARRAY_SIZE(cpuFreqDumper_)},
817     {.name_ = memDumper_[0].name_,
818      .desc_ = memDumper_[0].desc_,
819      .list_ = memDumper_,
820      .size_ = ARRAY_SIZE(memDumper_)},
821     {.name_ = jsHeapMemDumper_[0].name_,
822      .desc_ = jsHeapMemDumper_[0].desc_,
823      .list_ = jsHeapMemDumper_,
824      .size_ = ARRAY_SIZE(jsHeapMemDumper_)},
825     {.name_ = envDumper_[0].name_,
826      .desc_ = envDumper_[0].desc_,
827      .list_ = envDumper_,
828      .size_ = ARRAY_SIZE(envDumper_)},
829     {.name_ = kernelModuleDumper_[0].name_,
830      .desc_ = kernelModuleDumper_[0].desc_,
831      .list_ = kernelModuleDumper_,
832      .size_ = ARRAY_SIZE(kernelModuleDumper_)},
833     {.name_ = dumpFormatVersionDumper_[0].name_,
834      .desc_ = dumpFormatVersionDumper_[0].desc_,
835      .list_ = dumpFormatVersionDumper_,
836      .size_ = ARRAY_SIZE(dumpFormatVersionDumper_)},
837     {.name_ = slabinfoDumper_[0].name_,
838      .desc_ = slabinfoDumper_[0].desc_,
839      .list_ = slabinfoDumper_,
840      .size_ = ARRAY_SIZE(slabinfoDumper_)},
841     {.name_ = ldkslabinfoDumper_[0].name_,
842      .desc_ = ldkslabinfoDumper_[0].desc_,
843      .list_ = ldkslabinfoDumper_,
844      .size_ = ARRAY_SIZE(ldkslabinfoDumper_)},
845     {.name_ = zoneinfoDumper_[0].name_,
846      .desc_ = zoneinfoDumper_[0].desc_,
847      .list_ = zoneinfoDumper_,
848      .size_ = ARRAY_SIZE(zoneinfoDumper_)},
849     {.name_ = vmStatDumper_[0].name_,
850      .desc_ = vmStatDumper_[0].desc_,
851      .list_ = vmStatDumper_,
852      .size_ = ARRAY_SIZE(vmStatDumper_)},
853     {.name_ = vmAllocInfoDumper_[0].name_,
854      .desc_ = vmAllocInfoDumper_[0].desc_,
855      .list_ = vmAllocInfoDumper_,
856      .size_ = ARRAY_SIZE(vmAllocInfoDumper_)},
857     {.name_ = crashDumper_[0].name_,
858      .desc_ = crashDumper_[0].desc_,
859      .list_ = crashDumper_,
860      .size_ = ARRAY_SIZE(crashDumper_)},
861     {.name_ = kernelLogDumper_[0].name_,
862      .desc_ = kernelLogDumper_[0].desc_,
863      .list_ = kernelLogDumper_,
864      .size_ = ARRAY_SIZE(kernelLogDumper_)},
865     {.name_ = hilogDumper_[0].name_,
866      .desc_ = hilogDumper_[0].desc_,
867      .list_ = hilogDumper_,
868      .size_ = ARRAY_SIZE(hilogDumper_)},
869     {.name_ = portDumper_[0].name_,
870      .desc_ = portDumper_[0].desc_,
871      .list_ = portDumper_,
872      .size_ = ARRAY_SIZE(portDumper_)},
873     {.name_ = packetDumper_[0].name_,
874      .desc_ = packetDumper_[0].desc_,
875      .list_ = packetDumper_,
876      .size_ = ARRAY_SIZE(packetDumper_)},
877     {.name_ = ipDumper_[0].name_, .desc_ = ipDumper_[0].desc_, .list_ = ipDumper_, .size_ = ARRAY_SIZE(ipDumper_)},
878     {.name_ = ipTableDumper_[0].name_,
879      .desc_ = ipTableDumper_[0].desc_,
880      .list_ = ipTableDumper_,
881      .size_ = ARRAY_SIZE(ipTableDumper_)},
882     {.name_ = routeTableDumper_[0].name_,
883      .desc_ = routeTableDumper_[0].desc_,
884      .list_ = routeTableDumper_,
885      .size_ = ARRAY_SIZE(routeTableDumper_)},
886     {.name_ = ipcDumper_[0].name_, .desc_ = ipcDumper_[0].desc_, .list_ = ipcDumper_, .size_ = ARRAY_SIZE(ipcDumper_)},
887     {.name_ = ipRulesDumper_[0].name_,
888      .desc_ = ipRulesDumper_[0].desc_,
889      .list_ = ipRulesDumper_,
890      .size_ = ARRAY_SIZE(ipRulesDumper_)},
891     {.name_ = storageStateDumper_[0].name_,
892      .desc_ = storageStateDumper_[0].desc_,
893      .list_ = storageStateDumper_,
894      .size_ = ARRAY_SIZE(storageStateDumper_)},
895     {.name_ = blockDumper_[0].name_,
896      .desc_ = blockDumper_[0].desc_,
897      .list_ = blockDumper_,
898      .size_ = ARRAY_SIZE(blockDumper_)},
899     {.name_ = fileDumper_[0].name_,
900      .desc_ = fileDumper_[0].desc_,
901      .list_ = fileDumper_,
902      .size_ = ARRAY_SIZE(fileDumper_)},
903     {.name_ = topIoDumper_[0].name_,
904      .desc_ = topIoDumper_[0].desc_,
905      .list_ = topIoDumper_,
906      .size_ = ARRAY_SIZE(topIoDumper_)},
907     {.name_ = mountsDumper_[0].name_,
908      .desc_ = mountsDumper_[0].desc_,
909      .list_ = mountsDumper_,
910      .size_ = ARRAY_SIZE(mountsDumper_)},
911     {.name_ = threadsDumper_[0].name_,
912      .desc_ = threadsDumper_[0].desc_,
913      .list_ = threadsDumper_,
914      .size_ = ARRAY_SIZE(threadsDumper_)},
915     {.name_ = threadsPidDumper_[0].name_,
916      .desc_ = threadsPidDumper_[0].desc_,
917      .list_ = threadsPidDumper_,
918      .size_ = ARRAY_SIZE(threadsPidDumper_)},
919     {.name_ = smapDumper_[0].name_,
920      .desc_ = smapDumper_[0].desc_,
921      .list_ = smapDumper_,
922      .size_ = ARRAY_SIZE(smapDumper_)},
923     {.name_ = mapDumper_[0].name_, .desc_ = mapDumper_[0].desc_, .list_ = mapDumper_, .size_ = ARRAY_SIZE(mapDumper_)},
924     {.name_ = blockChannelDumper_[0].name_,
925      .desc_ = blockChannelDumper_[0].desc_,
926      .list_ = blockChannelDumper_,
927      .size_ = ARRAY_SIZE(blockChannelDumper_)},
928     {.name_ = excuteTimeDumper_[0].name_,
929      .desc_ = excuteTimeDumper_[0].desc_,
930      .list_ = excuteTimeDumper_,
931      .size_ = ARRAY_SIZE(excuteTimeDumper_)},
932     {.name_ = mountInfoDumper_[0].name_,
933      .desc_ = mountInfoDumper_[0].desc_,
934      .list_ = mountInfoDumper_,
935      .size_ = ARRAY_SIZE(mountInfoDumper_)},
936     {.name_ = systemAbilityDumper_[0].name_,
937      .desc_ = systemAbilityDumper_[0].desc_,
938      .list_ = systemAbilityDumper_,
939      .size_ = ARRAY_SIZE(systemAbilityDumper_)},
940     {.name_ = stackDumper_[0].name_,
941      .desc_ = stackDumper_[0].desc_,
942      .list_ = stackDumper_,
943      .size_ = ARRAY_SIZE(stackDumper_)},
944     {.name_ = listServiceDumper_[0].name_,
945      .desc_ = listServiceDumper_[0].desc_,
946      .list_ = listServiceDumper_,
947      .size_ = ARRAY_SIZE(listServiceDumper_)},
948     {.name_ = listSystemAbilityDumper_[0].name_,
949      .desc_ = listSystemAbilityDumper_[0].desc_,
950      .list_ = listSystemAbilityDumper_,
951      .size_ = ARRAY_SIZE(listSystemAbilityDumper_)},
952     {.name_ = listSystemDumper_[0].name_,
953      .desc_ = listSystemDumper_[0].desc_,
954      .list_ = listSystemDumper_,
955      .size_ = ARRAY_SIZE(listSystemDumper_)},
956     {.name_ = testDumper_[0].name_,
957      .desc_ = testDumper_[0].desc_,
958      .list_ = testDumper_,
959      .size_ = ARRAY_SIZE(testDumper_)},
960     {.name_ = ioDumper_[0].name_,
961      .desc_ = ioDumper_[0].desc_,
962      .list_ = ioDumper_,
963      .size_ = ARRAY_SIZE(ioDumper_)},
964     {.name_ = trafficDumper_[0].name_,
965      .desc_ = trafficDumper_[0].desc_,
966      .list_ = trafficDumper_,
967      .size_ = ARRAY_SIZE(trafficDumper_)},
968     {.name_ = ipcStatDumper_[0].name_,
969      .desc_ = ipcStatDumper_[0].desc_,
970      .list_ = ipcStatDumper_,
971      .size_ = ARRAY_SIZE(ipcStatDumper_)},
972 };
973 
974 const std::string ConfigData::cpuFreqGroup_[] = {
975     "dumper_cpu_freq",
976 };
977 
978 const std::string ConfigData::cpuUsageGroup_[] = {
979     "dumper_cpu_usage",
980 };
981 
982 const std::string ConfigData::logKernelGroup_[] = {
983     "dumper_kernel_log",
984 };
985 
986 const std::string ConfigData::logHilogGroup_[] = {
987     "dumper_hilog",
988 };
989 
990 const std::string ConfigData::logInitGroup_[] = {
991     "cpu_dumper_name_000",
992 };
993 
994 const std::string ConfigData::memoryGroup_[] = {
995     "dumper_mem",
996 };
997 
998 const std::string ConfigData::storageGroup_[] = {
999     "dumper_storage_state", "dumper_block", "dumper_file", "dumper_top_io", "dumper_mounts",
1000 };
1001 
1002 const std::string ConfigData::storageIoGroup_[] = {
1003     "dumper_io_info",
1004 };
1005 
1006 const std::string ConfigData::netGroup_[] = {
1007     "dumper_port",        "dumper_packet", "dumper_ip",       "dumper_ip_table",
1008     "dumper_route_table", "dumper_ipc",    "dumper_ip_rules",
1009 };
1010 
1011 const std::string ConfigData::netTrafficGroup_[] = {
1012     "dumper_traffic",
1013 };
1014 
1015 const std::string ConfigData::serviceGroup_[] = {
1016     "mem_dumper_name_000",
1017 };
1018 
1019 const std::string ConfigData::systemAbilityGroup_[] = {
1020     "dumper_system_ability",
1021 };
1022 
1023 const std::string ConfigData::systemBaseGroup_[] = {
1024     "dumper_base_info",           "dumper_kernel_version", "dumper_command_line",
1025     "dumper_kernel_wake_sources", "dumper_uptime",
1026 };
1027 
1028 const std::string ConfigData::systemBaseCpuIdGroupMini_[] = {
1029     "dumper_kernel_cpu_freq",
1030 };
1031 
1032 const std::string ConfigData::systemSystemGroup_[] = {
1033     "dumper_env",
1034     "dumper_kernel_module",
1035     "dumper_dump_format_version",
1036     "dumper_slabinfo",
1037     "dumper_ldkslabinfo",
1038     "dumper_zoneinfo",
1039     "dumper_vmstat",
1040     "dumper_vmallocinfo",
1041     "groupmini_cpuid_expand_systemSystemGroup",
1042     "groupmini_pid_nonexpand_systemSystemGroup",
1043 };
1044 
1045 const std::string ConfigData::systemSystemCpuIdGroupMini_[] = {
1046     "dumper_cpu_freq",
1047 };
1048 
1049 const std::string ConfigData::systemSystemPidGroupMini_[] = {
1050     "dumper_cpu_usage",
1051     "dumper_mem",
1052 };
1053 
1054 const std::string ConfigData::processesGroup_[] = {
1055     "dumper_threads",
1056     "groupmini_expand_processesGroup",
1057 };
1058 
1059 const std::string ConfigData::processesGroup_eng_[] = {
1060     "dumper_threads",
1061     "groupmini_expand_processesGroup_eng",
1062 };
1063 
1064 const std::string ConfigData::processesPidGroup_[] = {
1065     "groupmini_pid_expand_processesGroup",
1066 };
1067 
1068 const std::string ConfigData::processesPidGroup_eng_[] = {
1069     "groupmini_pid_expand_processesGroup_eng",
1070 };
1071 
1072 const std::string ConfigData::processesGroupMini_[] = {
1073     "dumper_block_channel",
1074     "dumper_excute_time",
1075     "dumper_mount_info",
1076 };
1077 
1078 const std::string ConfigData::processesGroupMini_eng_[] = {
1079     "dumper_map",
1080     "dumper_block_channel",
1081     "dumper_excute_time",
1082     "dumper_mount_info",
1083 };
1084 
1085 const std::string ConfigData::processesPidGroupMini_[] = {
1086     "dumper_threads_pid",
1087     "dumper_block_channel",
1088     "dumper_excute_time",
1089     "dumper_mount_info",
1090 };
1091 
1092 const std::string ConfigData::processesPidGroupMini_eng_[] = {
1093     "dumper_threads_pid",
1094     "dumper_map",
1095     "dumper_block_channel",
1096     "dumper_excute_time",
1097     "dumper_mount_info",
1098 };
1099 
1100 const std::string ConfigData::faultLogGroup_[] = {
1101     "dumper_crash",
1102 };
1103 
1104 const std::string ConfigData::stackGroup_[] = {
1105     "dumper_stack",
1106 };
1107 
1108 const std::string ConfigData::testGroup_[] = {
1109     "dumper_test",
1110 };
1111 
1112 const std::string ConfigData::ipcStatGroup_[] = {
1113     "dumper_ipc_stat",
1114 };
1115 
1116 const ConfigData::GroupCfg ConfigData::groups_[] = {
1117     {
1118         .name_ = ConfigData::CONFIG_GROUP_CPU_FREQ,
1119         .desc_ = "group of cpu freq dumper",
1120         .list_ = cpuFreqGroup_,
1121         .size_ = ARRAY_SIZE(cpuFreqGroup_),
1122         .type_ = DumperConstant::GROUPTYPE_CPUID,
1123         .expand_ = true,
1124     },
1125     {
1126         .name_ = ConfigData::CONFIG_GROUP_CPU_USAGE,
1127         .desc_ = "group of cpu usage dumper",
1128         .list_ = cpuUsageGroup_,
1129         .size_ = ARRAY_SIZE(cpuUsageGroup_),
1130         .type_ = DumperConstant::GROUPTYPE_PID,
1131         .expand_ = false,
1132     },
1133     {
1134         .name_ = ConfigData::CONFIG_GROUP_LOG_KERNEL,
1135         .desc_ = "group of kernel log dumper",
1136         .list_ = logKernelGroup_,
1137         .size_ = ARRAY_SIZE(logKernelGroup_),
1138         .type_ = DumperConstant::NONE,
1139         .expand_ = false,
1140     },
1141     {
1142         .name_ = ConfigData::CONFIG_GROUP_LOG_HILOG,
1143         .desc_ = "group of hilog dumper",
1144         .list_ = logHilogGroup_,
1145         .size_ = ARRAY_SIZE(logHilogGroup_),
1146         .type_ = DumperConstant::NONE,
1147         .expand_ = false,
1148     },
1149     {
1150         .name_ = ConfigData::CONFIG_GROUP_LOG_INIT,
1151         .desc_ = "group of init log dumper",
1152         .list_ = logInitGroup_,
1153         .size_ = ARRAY_SIZE(logInitGroup_),
1154         .type_ = DumperConstant::NONE,
1155         .expand_ = false,
1156     },
1157     {
1158         .name_ = ConfigData::CONFIG_GROUP_MEMORY,
1159         .desc_ = "group of memory dumper",
1160         .list_ = memoryGroup_,
1161         .size_ = ARRAY_SIZE(memoryGroup_),
1162         .type_ = DumperConstant::GROUPTYPE_PID,
1163         .expand_ = false,
1164     },
1165     {
1166         .name_ = ConfigData::CONFIG_GROUP_IPC_STAT,
1167         .desc_ = "group of ipc stat dumper",
1168         .list_ = ipcStatGroup_,
1169         .size_ = ARRAY_SIZE(ipcStatGroup_),
1170         .type_ = DumperConstant::GROUPTYPE_PID,
1171         .expand_ = false,
1172     },
1173     {
1174         .name_ = ConfigData::CONFIG_GROUP_STORAGE,
1175         .desc_ = "group of storage dumper",
1176         .list_ = storageGroup_,
1177         .size_ = ARRAY_SIZE(storageGroup_),
1178         .type_ = DumperConstant::NONE,
1179         .expand_ = false,
1180     },
1181     {
1182         .name_ = ConfigData::CONFIG_GROUP_NET,
1183         .desc_ = "group of net dumper",
1184         .list_ = netGroup_,
1185         .size_ = ARRAY_SIZE(netGroup_),
1186         .type_ = DumperConstant::NONE,
1187         .expand_ = false,
1188     },
1189     {
1190         .name_ = ConfigData::CONFIG_GROUP_SERVICE,
1191         .desc_ = "group of service dumper",
1192         .list_ = serviceGroup_,
1193         .size_ = ARRAY_SIZE(serviceGroup_),
1194         .type_ = DumperConstant::NONE,
1195         .expand_ = false,
1196     },
1197     {
1198         .name_ = ConfigData::CONFIG_GROUP_ABILITY,
1199         .desc_ = "group of ability dumper",
1200         .list_ = systemAbilityGroup_,
1201         .size_ = ARRAY_SIZE(systemAbilityGroup_),
1202         .type_ = DumperConstant::NONE,
1203         .expand_ = false,
1204     },
1205     {
1206         .name_ = ConfigData::CONFIG_GROUP_SYSTEM_BASE,
1207         .desc_ = "group of base log dumper",
1208         .list_ = systemBaseGroup_,
1209         .size_ = ARRAY_SIZE(systemBaseGroup_),
1210         .type_ = DumperConstant::NONE,
1211         .expand_ = false,
1212     },
1213     {
1214         .name_ = ConfigData::CONFIG_GROUP_STORAGE_IO,
1215         .desc_ = "group of io dumper",
1216         .list_ = storageIoGroup_,
1217         .size_ = ARRAY_SIZE(storageIoGroup_),
1218         .type_ = DumperConstant::GROUPTYPE_PID,
1219         .expand_ = false,
1220     },
1221     {
1222         .name_ = ConfigData::CONFIG_GROUP_NET_TRAFFIC,
1223         .desc_ = "group of traffic dumper",
1224         .list_ = netTrafficGroup_,
1225         .size_ = ARRAY_SIZE(netTrafficGroup_),
1226         .type_ = DumperConstant::GROUPTYPE_PID,
1227         .expand_ = false,
1228     },
1229     {
1230         .name_ = ConfigData::CONFIG_GROUP_SYSTEM_SYSTEM,
1231         .desc_ = "group of system log dumper",
1232         .list_ = systemSystemGroup_,
1233         .size_ = ARRAY_SIZE(systemSystemGroup_),
1234         .type_ = DumperConstant::NONE,
1235         .expand_ = false,
1236     },
1237     {
1238         .name_ = ConfigData::CONFIG_GROUP_PROCESSES,
1239         .desc_ = "group of processes dumper",
1240         .list_ = processesGroup_,
1241         .size_ = ARRAY_SIZE(processesGroup_),
1242         .type_ = DumperConstant::NONE,
1243         .expand_ = false,
1244     },
1245     {
1246         .name_ = ConfigData::CONFIG_GROUP_PROCESSES_ENG,
1247         .desc_ = "group of processes dumper by eng ",
1248         .list_ = processesGroup_eng_,
1249         .size_ = ARRAY_SIZE(processesGroup_eng_),
1250         .type_ = DumperConstant::NONE,
1251         .expand_ = false,
1252     },
1253     {
1254         .name_ = ConfigData::CONFIG_GROUP_PROCESSES_PID,
1255         .desc_ = "group of processes pid dumper",
1256         .list_ = processesPidGroup_,
1257         .size_ = ARRAY_SIZE(processesPidGroup_),
1258         .type_ = DumperConstant::NONE,
1259         .expand_ = false,
1260     },
1261     {
1262         .name_ = ConfigData::CONFIG_GROUP_PROCESSES_PID_ENG,
1263         .desc_ = "group of processes pid dumper by eng",
1264         .list_ = processesPidGroup_eng_,
1265         .size_ = ARRAY_SIZE(processesPidGroup_eng_),
1266         .type_ = DumperConstant::NONE,
1267         .expand_ = false,
1268     },
1269     {
1270         .name_ = ConfigData::CONFIG_GROUP_FAULT_LOG,
1271         .desc_ = "group of fault log dumper",
1272         .list_ = faultLogGroup_,
1273         .size_ = ARRAY_SIZE(faultLogGroup_),
1274         .type_ = DumperConstant::NONE,
1275         .expand_ = false,
1276     },
1277     {
1278         .name_ = ConfigData::CONFIG_GROUP_STACK,
1279         .desc_ = "group of stack dumper",
1280         .list_ = stackGroup_,
1281         .size_ = ARRAY_SIZE(stackGroup_),
1282         .type_ = DumperConstant::GROUPTYPE_PID,
1283         .expand_ = true,
1284     },
1285     {
1286         .name_ = ConfigData::CONFIG_GROUP_TEST,
1287         .desc_ = "group of test dumper",
1288         .list_ = testGroup_,
1289         .size_ = ARRAY_SIZE(testGroup_),
1290         .type_ = DumperConstant::NONE,
1291         .expand_ = false,
1292     },
1293     {
1294         .name_ = "groupmini_expand_processesGroup",
1295         .desc_ = "mini-group for of processes dumper",
1296         .list_ = processesGroupMini_,
1297         .size_ = ARRAY_SIZE(processesGroupMini_),
1298         .type_ = DumperConstant::GROUPTYPE_PID,
1299         .expand_ = true,
1300     },
1301     {
1302         .name_ = "groupmini_expand_processesGroup_eng",
1303         .desc_ = "mini-group for of processes dumper by eng",
1304         .list_ = processesGroupMini_eng_,
1305         .size_ = ARRAY_SIZE(processesGroupMini_eng_),
1306         .type_ = DumperConstant::GROUPTYPE_PID,
1307         .expand_ = true,
1308     },
1309     {
1310         .name_ = "groupmini_pid_expand_processesGroup",
1311         .desc_ = "mini-group for of processes dumper",
1312         .list_ = processesPidGroupMini_,
1313         .size_ = ARRAY_SIZE(processesPidGroupMini_),
1314         .type_ = DumperConstant::GROUPTYPE_PID,
1315         .expand_ = true,
1316     },
1317     {
1318         .name_ = "groupmini_pid_expand_processesGroup_eng",
1319         .desc_ = "mini-group for of processes dumper by eng",
1320         .list_ = processesPidGroupMini_eng_,
1321         .size_ = ARRAY_SIZE(processesPidGroupMini_eng_),
1322         .type_ = DumperConstant::GROUPTYPE_PID,
1323         .expand_ = true,
1324     },
1325     {
1326         .name_ = "groupmini_cpuid_expand_systemBaseGroup",
1327         .desc_ = "mini-group for of base dumper",
1328         .list_ = systemBaseCpuIdGroupMini_,
1329         .size_ = ARRAY_SIZE(systemBaseCpuIdGroupMini_),
1330         .type_ = DumperConstant::GROUPTYPE_CPUID,
1331         .expand_ = true,
1332     },
1333     {
1334         .name_ = "groupmini_cpuid_expand_systemSystemGroup",
1335         .desc_ = "mini-group for of system dumper",
1336         .list_ = systemSystemCpuIdGroupMini_,
1337         .size_ = ARRAY_SIZE(systemSystemCpuIdGroupMini_),
1338         .type_ = DumperConstant::GROUPTYPE_CPUID,
1339         .expand_ = true,
1340     },
1341     {
1342         .name_ = "groupmini_pid_nonexpand_systemSystemGroup",
1343         .desc_ = "group of cpu usage dumper",
1344         .list_ = systemSystemPidGroupMini_,
1345         .size_ = ARRAY_SIZE(systemSystemPidGroupMini_),
1346         .type_ = DumperConstant::GROUPTYPE_PID,
1347         .expand_ = false,
1348     },
1349 };
1350 
1351 const int ConfigData::dumperSum_ = ARRAY_SIZE(dumpers_);
1352 const int ConfigData::groupSum_ = ARRAY_SIZE(groups_);
1353 const int ConfigData::NEST_MAX = 10;
1354 
ConfigData()1355 ConfigData::ConfigData()
1356 {
1357 }
1358 
~ConfigData()1359 ConfigData::~ConfigData()
1360 {
1361 }
1362 } // namespace HiviewDFX
1363 } // namespace OHOS
1364