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