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"
18namespace OHOS {
19namespace HiviewDFX {
20const std::string ConfigData::CONFIG_NAME_SPLIT = "_";
21const std::string ConfigData::CONFIG_GROUP = "group";
22const std::string ConfigData::CONFIG_GROUP_ = ConfigData::CONFIG_GROUP + ConfigData::CONFIG_NAME_SPLIT;
23const std::string ConfigData::CONFIG_MINIGROUP = "groupmini";
24const std::string ConfigData::CONFIG_MINIGROUP_ = ConfigData::CONFIG_MINIGROUP + ConfigData::CONFIG_NAME_SPLIT;
25const std::string ConfigData::CONFIG_DUMPER = "dumper";
26const std::string ConfigData::CONFIG_DUMPER_ = ConfigData::CONFIG_DUMPER + ConfigData::CONFIG_NAME_SPLIT;
27const std::string ConfigData::CONFIG_DUMPER_LIST = ConfigData::CONFIG_DUMPER_ + "list";
28const std::string ConfigData::CONFIG_DUMPER_LIST_ = ConfigData::CONFIG_DUMPER_LIST + ConfigData::CONFIG_NAME_SPLIT;
29const std::string ConfigData::CONFIG_DUMPER_LIST_SERVICE = ConfigData::CONFIG_DUMPER_LIST_ + "service";
30const std::string ConfigData::CONFIG_DUMPER_LIST_SYSTEM_ABILITY = ConfigData::CONFIG_DUMPER_LIST_ + "system_ability";
31const std::string ConfigData::CONFIG_DUMPER_LIST_SYSTEM = ConfigData::CONFIG_DUMPER_LIST_ + "system";
32const std::string ConfigData::CONFIG_DUMPER_JSHEAP_MEMORY = ConfigData::CONFIG_DUMPER_ + "jsheap_memory";
33const std::string ConfigData::CONFIG_GROUP_IPC_STAT = ConfigData::CONFIG_GROUP_ + "ipc";
34const std::string ConfigData::CONFIG_GROUP_CPU_FREQ = ConfigData::CONFIG_GROUP_ + "cpufreq";
35const std::string ConfigData::CONFIG_GROUP_CPU_USAGE = ConfigData::CONFIG_GROUP_ + "cpuusage";
36const std::string ConfigData::CONFIG_GROUP_LOG = ConfigData::CONFIG_GROUP_ + "log";
37const std::string ConfigData::CONFIG_GROUP_LOG_ = ConfigData::CONFIG_GROUP_LOG + ConfigData::CONFIG_NAME_SPLIT;
38const std::string ConfigData::CONFIG_GROUP_LOG_KERNEL = ConfigData::CONFIG_GROUP_LOG_ + "kernel";
39const std::string ConfigData::CONFIG_GROUP_LOG_HILOG = ConfigData::CONFIG_GROUP_LOG_ + "hilog";
40const std::string ConfigData::CONFIG_GROUP_LOG_INIT = ConfigData::CONFIG_GROUP_LOG_ + "init";
41const std::string ConfigData::CONFIG_GROUP_MEMORY = ConfigData::CONFIG_GROUP_ + "memory";
42const std::string ConfigData::CONFIG_GROUP_STORAGE = ConfigData::CONFIG_GROUP_ + "storage";
43const std::string ConfigData::CONFIG_GROUP_STORAGE_IO = ConfigData::CONFIG_GROUP_ + "storage io";
44const std::string ConfigData::CONFIG_GROUP_NET = ConfigData::CONFIG_GROUP_ + "net";
45const std::string ConfigData::CONFIG_GROUP_NET_TRAFFIC = ConfigData::CONFIG_GROUP_ + "net traffic";
46const std::string ConfigData::CONFIG_GROUP_SERVICE = ConfigData::CONFIG_GROUP_ + "service";
47const std::string ConfigData::CONFIG_GROUP_ABILITY = ConfigData::CONFIG_GROUP_ + "ability";
48const std::string ConfigData::CONFIG_GROUP_SYSTEM = ConfigData::CONFIG_GROUP_ + "system";
49const std::string ConfigData::CONFIG_GROUP_SYSTEM_ = ConfigData::CONFIG_GROUP_SYSTEM + ConfigData::CONFIG_NAME_SPLIT;
50const std::string ConfigData::CONFIG_GROUP_SYSTEM_BASE = ConfigData::CONFIG_GROUP_SYSTEM_ + "base";
51const std::string ConfigData::CONFIG_GROUP_SYSTEM_SYSTEM = ConfigData::CONFIG_GROUP_SYSTEM_ + "system";
52const std::string ConfigData::CONFIG_GROUP_PROCESSES = ConfigData::CONFIG_GROUP_ + "processes";
53const std::string ConfigData::CONFIG_GROUP_PROCESSES_ENG = ConfigData::CONFIG_GROUP_ + "eng_processes";
54const std::string ConfigData::CONFIG_GROUP_PROCESSES_PID = ConfigData::CONFIG_GROUP_ + "pid_processes";
55const std::string ConfigData::CONFIG_GROUP_PROCESSES_PID_ENG = ConfigData::CONFIG_GROUP_ + "pid_eng_processes";
56const std::string ConfigData::CONFIG_GROUP_FAULT_LOG = ConfigData::CONFIG_GROUP_ + "faultlog";
57const std::string ConfigData::CONFIG_GROUP_STACK = ConfigData::CONFIG_GROUP_ + "stack";
58const std::string ConfigData::CONFIG_GROUP_TEST = ConfigData::CONFIG_GROUP_ + "test";
59const std::string ConfigData::STR_ABILITY = "ability";
60const std::string ConfigData::STR_BASE = "base";
61const std::string ConfigData::STR_SERVICE = "service";
62const std::string ConfigData::STR_SYSTEM = "system";
63
64const 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
75const 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
86const 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
97const 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
108const 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
127const 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
138const 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
149const 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
168const 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
179const 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
190const 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
201const 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
220const 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
231const 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
242const 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
253const 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
264const 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
275const 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
286const 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
297const 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
308const 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
319const 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
330const 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
373const 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
384const 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
443const 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
454const 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
497const 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
540const 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
551const 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
562const 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
573const 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
588const 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
599const 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
610const 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
621const 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
632const 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
643const 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
654const 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
665const 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
676const 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
687const 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
698const 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
709const 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
720const 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
731const 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
750const 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
761const 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
773const 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
784const 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
974const std::string ConfigData::cpuFreqGroup_[] = {
975    "dumper_cpu_freq",
976};
977
978const std::string ConfigData::cpuUsageGroup_[] = {
979    "dumper_cpu_usage",
980};
981
982const std::string ConfigData::logKernelGroup_[] = {
983    "dumper_kernel_log",
984};
985
986const std::string ConfigData::logHilogGroup_[] = {
987    "dumper_hilog",
988};
989
990const std::string ConfigData::logInitGroup_[] = {
991    "cpu_dumper_name_000",
992};
993
994const std::string ConfigData::memoryGroup_[] = {
995    "dumper_mem",
996};
997
998const std::string ConfigData::storageGroup_[] = {
999    "dumper_storage_state", "dumper_block", "dumper_file", "dumper_top_io", "dumper_mounts",
1000};
1001
1002const std::string ConfigData::storageIoGroup_[] = {
1003    "dumper_io_info",
1004};
1005
1006const 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
1011const std::string ConfigData::netTrafficGroup_[] = {
1012    "dumper_traffic",
1013};
1014
1015const std::string ConfigData::serviceGroup_[] = {
1016    "mem_dumper_name_000",
1017};
1018
1019const std::string ConfigData::systemAbilityGroup_[] = {
1020    "dumper_system_ability",
1021};
1022
1023const std::string ConfigData::systemBaseGroup_[] = {
1024    "dumper_base_info",           "dumper_kernel_version", "dumper_command_line",
1025    "dumper_kernel_wake_sources", "dumper_uptime",
1026};
1027
1028const std::string ConfigData::systemBaseCpuIdGroupMini_[] = {
1029    "dumper_kernel_cpu_freq",
1030};
1031
1032const 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
1045const std::string ConfigData::systemSystemCpuIdGroupMini_[] = {
1046    "dumper_cpu_freq",
1047};
1048
1049const std::string ConfigData::systemSystemPidGroupMini_[] = {
1050    "dumper_cpu_usage",
1051    "dumper_mem",
1052};
1053
1054const std::string ConfigData::processesGroup_[] = {
1055    "dumper_threads",
1056    "groupmini_expand_processesGroup",
1057};
1058
1059const std::string ConfigData::processesGroup_eng_[] = {
1060    "dumper_threads",
1061    "groupmini_expand_processesGroup_eng",
1062};
1063
1064const std::string ConfigData::processesPidGroup_[] = {
1065    "groupmini_pid_expand_processesGroup",
1066};
1067
1068const std::string ConfigData::processesPidGroup_eng_[] = {
1069    "groupmini_pid_expand_processesGroup_eng",
1070};
1071
1072const std::string ConfigData::processesGroupMini_[] = {
1073    "dumper_block_channel",
1074    "dumper_excute_time",
1075    "dumper_mount_info",
1076};
1077
1078const std::string ConfigData::processesGroupMini_eng_[] = {
1079    "dumper_map",
1080    "dumper_block_channel",
1081    "dumper_excute_time",
1082    "dumper_mount_info",
1083};
1084
1085const std::string ConfigData::processesPidGroupMini_[] = {
1086    "dumper_threads_pid",
1087    "dumper_block_channel",
1088    "dumper_excute_time",
1089    "dumper_mount_info",
1090};
1091
1092const 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
1100const std::string ConfigData::faultLogGroup_[] = {
1101    "dumper_crash",
1102};
1103
1104const std::string ConfigData::stackGroup_[] = {
1105    "dumper_stack",
1106};
1107
1108const std::string ConfigData::testGroup_[] = {
1109    "dumper_test",
1110};
1111
1112const std::string ConfigData::ipcStatGroup_[] = {
1113    "dumper_ipc_stat",
1114};
1115
1116const 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
1351const int ConfigData::dumperSum_ = ARRAY_SIZE(dumpers_);
1352const int ConfigData::groupSum_ = ARRAY_SIZE(groups_);
1353const int ConfigData::NEST_MAX = 10;
1354
1355ConfigData::ConfigData()
1356{
1357}
1358
1359ConfigData::~ConfigData()
1360{
1361}
1362} // namespace HiviewDFX
1363} // namespace OHOS
1364