1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#ifndef _CONFIG_H
6#define _CONFIG_H
7
8#include <string>
9#include <vector>
10#include <list>
11
12using namespace std;
13
14typedef struct tagVariable {
15 int max_size;
16 bool is_pointer;
17 string sym_name;
18}Variable;
19
20typedef enum tagRunMode {
21 DRY_RUN = 0,
22 NORMAL,
23 FAST,
24}RunMode;
25
26typedef struct tagDumpConfig {
27 RunMode mode;
28 bool dump_pthread_list;
29 bool dump_robust_mutex_list;
30 bool current_thread_only;
31 int max_heap_size; /*Disable dump stack if set to zero*/
32 int max_stack_size; /*Disable dump stack if set to zero*/
33 int max_param_size;
34 int compress_level;
35 int shared_buffer_size;
36 long max_dump_bytes;
37
38 string dump_dir;
39 string break_function;
40 list<string> modules;
41 vector<Variable> vars;
42 vector<int> sigs;
43
44 bool log_debug;
45 bool log_to_stdout;
46 bool log_to_file;
47 int log_file_max_size;
48 int log_flush_threshold;
49}DumpConfig;
50
51int load_config(DumpConfig& cfg);
52
53#endif /* end #ifndef _CONFIG_H */
54