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