forked from makedumpfile/makedumpfile
-
Notifications
You must be signed in to change notification settings - Fork 0
/
makedumpfile.conf
149 lines (149 loc) · 5 KB
/
makedumpfile.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
## Filter config file
##
## Description:
## Configuration file to specify filter commands to filter out desired
## kernel data from vmcore. It supports erasing of symbol data and
## it's members of any data type. In case of filtering of data pointed by
## void * pointer, user needs to provide size to filter out.
##
## Please refer to manpage makedumpfile.conf(5) for more details.
##
##
## - Module section
## =========================================================
## Syntax:
## [ModuleName]
##
## Define the module section where the symbols specified in subsequent erase
## commands belong to. The section name is a kernel module name (including
## vmlinux). The unnamed section defaults to [vmlinux] section.
##
## NOTE: There should not be any whitespaces before or after the ModuleName.
##
## e.g.
## [vmlinux] # Symbols in erase command belongs to main kernel (vmlinux)
## erase modules
## erase cred_jar.name
## erase cred_jar.name size 10
## erase cred_jar.array
## erase vmlist.addr nullify
##
## [z90crypt] # Symbols in erase command belongs to kernel module z90crypt
## erase ap_device_list
##
## # erase entire CPRBX structure
## erase static_cprbx
##
##
## - To erase kernel data referred through a kernel Symbol
## =========================================================
## Syntax:
## erase <Symbol>[.member[...]] [size <SizeValue>[K|M]]
## erase <Symbol>[.member[...]] [size <SizeSymbol>]
## erase <Symbol>[.member[...]] [nullify]]
##
## where
## <Symbol>
## A variable name from the kernel or module, which is part of
## global symbols '/proc/kallsyms'.
## <SizeValue>
## Integer value that specifies size of data to be erased. The
## suffixes 'K' and 'M' can be used to specify kilobytes and
## megabytes respectively where, K means 1024 bytes and M means
## 1024 ^ 2 = 1048576 bytes.
## <SizeSymbol>
## A simple axpression of the form <Symbol>[.member[...]] that
## denotes a symbol which contains a positive integer value as a
## size of the data in bytes to be erased.
##
## Filter out the specified size of the data referred by symbol/member.
## If size option is not provided then the size of <Symbol> will be calculated
## according to it's data type. For 'char *' data type, string length will be
## determined with an upper limit of 1024.
##
## If specified <Symbol> is of type 'void *', then user needs to provide
## either 'size' or 'nullify' option. Otherwise erase command will not have
## any effect.
##
## The option 'nullify' will work only if filter symbol/member is a pointer and
## is used to set NULL value to the pointer type symbol/member.
##
## NOTE: Please note that by nullifying pointer values will affect the
## debug ability of created DUMPFILE. Use 'nullify' option only when size of
## data to be filter out is not known e.g. data pointed by 'void *'.
##
## e.g.
## [vmlinux]
## erase modules
## erase cred_jar.name
## erase cred_jar.name size 10
## erase cred_jar.array
## erase vmlist.addr nullify
##
##
## - To filter kernel data referred through Array/list_head Symbol
## =================================================================
## Syntax:
## for <id> in { <ArrayVar> |
## <StructVar> via <NextMember> |
## <ListHeadVar> within <StructName>:<ListHeadMember> }
## erase <id>[.MemberExpression] [size <SizeExpression>|nullify]
## [erase <id> ...]
## [...]
## endfor
##
## where
## <id>
## Arbitrary name used to temporarily point to elements of the
## list. Referred as iteration variable.
## <ArrayVar>
## A simple expression in the form of <Symbol>[.member[...]] that
## results into an array variable.
## <StructVar>
## A simple expression in the form of <Symbol>[.member[...]] that
## results into a variable that points to a structure.
## <NextMember>
## Member within <StructVar> that points to an object of same
## type that of <StructVar>.
## <ListHeadVar>
## A simple expression in the form of <Symbol>[.member[...]] that
## results into a variable of type struct list_head.
## <StructName>
## Name of the structure type that can be traversed using
## HEAD variable <ListHeadVar> and contains a member named
## <ListHeadMember>.
## <ListHeadMember>
## Name of a member in <StructName>, of type struct list_head.
## <MemberExpression>
## A simple expression in the form of [.member[...]] to specify a
## member or component of a member in <ArrayVar>, <StructVar> or
## <StructName>.
## <SizeExpression>
## One of the following:
## - An integer value.
## - <Symbol>[.member[...]]
## - <id>[.MemberExpresion]
##
## The <ArrayVar>, <StructVar> and <ListHeadVar> is also referred as LIST
## entry
##
## Filter out the specified size of the data accessible through LIST entries.
## e.g.
## [vmlinux]
## # Traversing <ListHeadVar>
## for m in modules.next within module:list
## erase m.holders_dir.name
## endfor
## # Traversing <ArrayVar>
## for lc in lowcore_ptr
## erase lc
## endfor
## # Traversing link-list
## for cj in cred_jar via slabp_cache
## erase cj.name
## endfor
## [z90crypt]
## for ap_dev in ap_device_list.next within ap_device:list
## erase ap_dev.reply.message size ap_dev.reply.length
## endfor
##