ruby-elf 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/elfgrep +32 -31
- data/bin/rbelf-size +32 -10
- data/lib/elf.rb +1 -8
- data/lib/elf/file.rb +3 -2
- data/lib/elf/symbol.rb +7 -3
- data/lib/elf/tools.rb +13 -17
- data/manpages/cowstats.1.xml +234 -0
- data/manpages/elfgrep.1 +5 -15
- data/manpages/elfgrep.1.xml +370 -0
- data/manpages/missingstatic.1.xml +290 -0
- data/manpages/rbelf-size.1 +5 -0
- data/manpages/rbelf-size.1.xml +334 -0
- data/manpages/verify-lfs.1.xml +136 -0
- data/tools/readelf-d.rb +5 -2
- metadata +9 -4
data/manpages/elfgrep.1
CHANGED
@@ -31,7 +31,7 @@
|
|
31
31
|
elfgrep \- Search for symbols matching an expression in ELF files
|
32
32
|
.SH "SYNOPSIS"
|
33
33
|
.HP \w'\fBelfgrep\fR\ 'u
|
34
|
-
\fBelfgrep\fR [\fB\-\-fixed\-strings\fR]
|
34
|
+
\fBelfgrep\fR [\fB\-\-fixed\-strings\fR] [\fB\-\-ignore\-case\fR] [\fB\-\-match\-version\fR] [\fB\-\-no\-match\-undefined\fR | \fB\-\-no\-match\-defined\fR] [\fB\-\-invert\-match\fR] [\fB\-\-count\fR] [\fB\-\-files\-without\-match\fR | \fB\-\-files\-with\-matches\fR] [\fB\-\-with\-filename\fR | \fB\-\-no\-filename\fR] [\fB\-\-null\fR] [\fB\-\-quiet\fR] [\fB\-\-recursive\fR] {\fB\-\-regexp\fR\ \fIPATTERN\fR... | \fIPATTERN\fR} [\fB@\fR\fIfile\fR | \fIfile\fR...]
|
35
35
|
.SH "DESCRIPTION"
|
36
36
|
.PP
|
37
37
|
|
@@ -46,18 +46,14 @@ tool\&.
|
|
46
46
|
.RS 4
|
47
47
|
Interpret
|
48
48
|
\fIPATTERN\fR
|
49
|
-
as a fixed
|
49
|
+
as a list of fixed strings, separated by newlines, any of which is to be matched\&.
|
50
50
|
.RE
|
51
51
|
.PP
|
52
52
|
\fB\-e\fR \fIPATTERN\fR, \fB\-\-regexp\fR \fIPATTERN\fR
|
53
53
|
.RS 4
|
54
|
-
|
55
|
-
\
|
56
|
-
|
57
|
-
\fIhave\fR
|
58
|
-
to provide at least an expression through the
|
59
|
-
\fB\-\-regexp\fR
|
60
|
-
option\&.
|
54
|
+
Use
|
55
|
+
\fIPATTERN\fR
|
56
|
+
as the pattern\&. This can be used to specify multiple search patterns, or to protect a pattern beginning with a hyphen (\-)\&.
|
61
57
|
.RE
|
62
58
|
.PP
|
63
59
|
\fB\-i\fR, \fB\-\-ignore\-case\fR
|
@@ -154,12 +150,6 @@ uses standard Ruby regular expressions, which are neither the basic or extended
|
|
154
150
|
\fBgrep\fR(1)
|
155
151
|
nor the Perl (or compatible) regular expressions\&.
|
156
152
|
.PP
|
157
|
-
The
|
158
|
-
\fB\-\-fixed\-strings\fR
|
159
|
-
option does not conform completely with the equivalent option from
|
160
|
-
\fBgrep\fR(1)
|
161
|
-
as it doesn\*(Aqt take a newline\-separated list of strings, but only a single string\&.
|
162
|
-
.PP
|
163
153
|
Parsing of files to provide further arguments (\fB@\fR\fIfile\fR) is not entirely comforming to other tools handling of the same syntax\&. No options are parsed from the file, and filenames are expected to be separated by newlines rather than whitespace\&.
|
164
154
|
.PP
|
165
155
|
Symbolic links are only followed when they are passed directly to the command line, or through @\-lists; symbolic links are
|
@@ -0,0 +1,370 @@
|
|
1
|
+
<?xml version='1.0'?>
|
2
|
+
<!--
|
3
|
+
Copyright © 2011, Diego "Flameeyes" Pettenò <flameeyes@gmail.com>
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with this generator; if not, write to the Free Software
|
17
|
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
-->
|
19
|
+
<article xmlns="http://docbook.org/ns/docbook"
|
20
|
+
xmlns:xl="http://www.w3.org/1999/xlink"
|
21
|
+
xmlns:xi="http://www.w3.org/2001/XInclude"
|
22
|
+
version="5.0" xml:lang="en">
|
23
|
+
<info>
|
24
|
+
<title>elfgrep</title>
|
25
|
+
|
26
|
+
<xi:include parse="xml" href="author.xmli" />
|
27
|
+
</info>
|
28
|
+
|
29
|
+
<section>
|
30
|
+
<title>Reference</title>
|
31
|
+
|
32
|
+
<refentry>
|
33
|
+
<info>
|
34
|
+
<date>January 2011</date>
|
35
|
+
<productname>ruby-elf</productname>
|
36
|
+
</info>
|
37
|
+
<refmeta>
|
38
|
+
<refentrytitle>elfgrep</refentrytitle>
|
39
|
+
<manvolnum>1</manvolnum>
|
40
|
+
</refmeta>
|
41
|
+
<refnamediv>
|
42
|
+
<refname>elfgrep</refname>
|
43
|
+
<refpurpose>Search for symbols matching an expression in ELF files</refpurpose>
|
44
|
+
</refnamediv>
|
45
|
+
<refsynopsisdiv>
|
46
|
+
<cmdsynopsis>
|
47
|
+
<command>elfgrep</command>
|
48
|
+
|
49
|
+
<arg choice="opt">
|
50
|
+
<option>--fixed-strings</option>
|
51
|
+
</arg>
|
52
|
+
|
53
|
+
<arg choice="opt">
|
54
|
+
<option>--ignore-case</option>
|
55
|
+
</arg>
|
56
|
+
|
57
|
+
<arg choice="opt">
|
58
|
+
<option>--match-version</option>
|
59
|
+
</arg>
|
60
|
+
|
61
|
+
<group choice="opt">
|
62
|
+
<arg choice="plain">
|
63
|
+
<option>--no-match-undefined</option>
|
64
|
+
</arg>
|
65
|
+
|
66
|
+
<arg choice="plain">
|
67
|
+
<option>--no-match-defined</option>
|
68
|
+
</arg>
|
69
|
+
</group>
|
70
|
+
|
71
|
+
<arg choice="opt">
|
72
|
+
<option>--invert-match</option>
|
73
|
+
</arg>
|
74
|
+
|
75
|
+
<arg choice="opt">
|
76
|
+
<option>--count</option>
|
77
|
+
</arg>
|
78
|
+
|
79
|
+
<group choice="opt">
|
80
|
+
<arg choice="plain">
|
81
|
+
<option>--files-without-match</option>
|
82
|
+
</arg>
|
83
|
+
|
84
|
+
<arg choice="plain">
|
85
|
+
<option>--files-with-matches</option>
|
86
|
+
</arg>
|
87
|
+
</group>
|
88
|
+
|
89
|
+
<group choice="opt">
|
90
|
+
<arg choice="plain">
|
91
|
+
<option>--with-filename</option>
|
92
|
+
</arg>
|
93
|
+
|
94
|
+
<arg choice="plain">
|
95
|
+
<option>--no-filename</option>
|
96
|
+
</arg>
|
97
|
+
</group>
|
98
|
+
|
99
|
+
<arg choice="opt">
|
100
|
+
<option>--null</option>
|
101
|
+
</arg>
|
102
|
+
|
103
|
+
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.synopsis.options')/*)" />
|
104
|
+
|
105
|
+
<group choice="req">
|
106
|
+
<arg choice="plain" rep="repeat">
|
107
|
+
<option>--regexp</option>
|
108
|
+
<replaceable>PATTERN</replaceable>
|
109
|
+
</arg>
|
110
|
+
|
111
|
+
<arg choice="plain">
|
112
|
+
<replaceable>PATTERN</replaceable>
|
113
|
+
</arg>
|
114
|
+
</group>
|
115
|
+
|
116
|
+
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.synopsis.arguments')/*)" />
|
117
|
+
</cmdsynopsis>
|
118
|
+
</refsynopsisdiv>
|
119
|
+
|
120
|
+
<refsect1>
|
121
|
+
<title>Description</title>
|
122
|
+
<para>
|
123
|
+
<command>elfgrep</command> is a simple script that allows to earch for particular symbols
|
124
|
+
within a file, by matching regular expression on their name. It is insipired by the common
|
125
|
+
Unix
|
126
|
+
<citerefentry><refentrytitle>grep</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
127
|
+
tool.
|
128
|
+
</para>
|
129
|
+
</refsect1>
|
130
|
+
|
131
|
+
<refsect1>
|
132
|
+
<title>Options</title>
|
133
|
+
|
134
|
+
<refsect2>
|
135
|
+
<title>Matching Control</title>
|
136
|
+
|
137
|
+
<variablelist>
|
138
|
+
<varlistentry>
|
139
|
+
<term><option>-F</option></term>
|
140
|
+
<term><option>--fixed-strings</option></term>
|
141
|
+
<listitem>
|
142
|
+
<para>
|
143
|
+
Interpret <replaceable>PATTERN</replaceable> as a list of fixed strings, separated
|
144
|
+
by newlines, any of which is to be matched.
|
145
|
+
</para>
|
146
|
+
</listitem>
|
147
|
+
</varlistentry>
|
148
|
+
|
149
|
+
<varlistentry>
|
150
|
+
<term>
|
151
|
+
<option>-e</option>
|
152
|
+
<replaceable>PATTERN</replaceable>
|
153
|
+
</term>
|
154
|
+
<term>
|
155
|
+
<option>--regexp</option>
|
156
|
+
<replaceable>PATTERN</replaceable>
|
157
|
+
</term>
|
158
|
+
|
159
|
+
<listitem>
|
160
|
+
<para>
|
161
|
+
Use <replaceable>PATTERN</replaceable> as the pattern. This can be used to specify
|
162
|
+
multiple search patterns, or to protect a pattern beginning with a hyphen
|
163
|
+
(<literal>-</literal>).
|
164
|
+
</para>
|
165
|
+
</listitem>
|
166
|
+
</varlistentry>
|
167
|
+
|
168
|
+
<varlistentry>
|
169
|
+
<term><option>-i</option></term>
|
170
|
+
<term><option>--ignore-case</option></term>
|
171
|
+
<listitem>
|
172
|
+
<para>
|
173
|
+
Ignore case distinction in both the <replaceable>PATTERN</replaceable> and the
|
174
|
+
symbols' names.
|
175
|
+
</para>
|
176
|
+
</listitem>
|
177
|
+
</varlistentry>
|
178
|
+
|
179
|
+
<varlistentry>
|
180
|
+
<term><option>-V</option></term>
|
181
|
+
<term><option>--match-version</option></term>
|
182
|
+
<listitem>
|
183
|
+
<para>
|
184
|
+
Append the ELF version information for the symbol, separated by an @ symbol, before
|
185
|
+
testing the expression for match. This allows to match only symbols that are defined
|
186
|
+
with a particular version.
|
187
|
+
</para>
|
188
|
+
</listitem>
|
189
|
+
</varlistentry>
|
190
|
+
|
191
|
+
<varlistentry>
|
192
|
+
<term><option>-U</option></term>
|
193
|
+
<term><option>--no-match-undefined</option></term>
|
194
|
+
<listitem>
|
195
|
+
<para>
|
196
|
+
Do not report matches on undefined symbols; useful if you're looking for the objects
|
197
|
+
defining the symbol, and not those using it.
|
198
|
+
</para>
|
199
|
+
</listitem>
|
200
|
+
</varlistentry>
|
201
|
+
|
202
|
+
<varlistentry>
|
203
|
+
<term><option>-D</option></term>
|
204
|
+
<term><option>--no-match-defined</option></term>
|
205
|
+
<listitem>
|
206
|
+
<para>
|
207
|
+
Do not report matches on defined symbols; useful if you're looking for the objects
|
208
|
+
using the symbol, and not those defining it.
|
209
|
+
</para>
|
210
|
+
</listitem>
|
211
|
+
</varlistentry>
|
212
|
+
|
213
|
+
<varlistentry>
|
214
|
+
<term><option>-v</option></term>
|
215
|
+
<term><option>--invert-match</option></term>
|
216
|
+
<listitem>
|
217
|
+
<para>
|
218
|
+
Invert the sense of matching, to select non-matching symbols. This does not invert
|
219
|
+
the sense of <option>--no-match-undefined</option> and
|
220
|
+
<option>--no-match-defined</option>.
|
221
|
+
</para>
|
222
|
+
</listitem>
|
223
|
+
</varlistentry>
|
224
|
+
</variablelist>
|
225
|
+
</refsect2>
|
226
|
+
|
227
|
+
<refsect2>
|
228
|
+
<title>Output Control</title>
|
229
|
+
|
230
|
+
<variablelist>
|
231
|
+
|
232
|
+
<varlistentry>
|
233
|
+
<term><option>-c</option></term>
|
234
|
+
<term><option>--count</option></term>
|
235
|
+
<listitem>
|
236
|
+
<para>
|
237
|
+
Suppress normal output; instead print a count of matching lines for each input
|
238
|
+
file. With the <option>--invert-match</option> option, count non-matching lines.
|
239
|
+
</para>
|
240
|
+
</listitem>
|
241
|
+
</varlistentry>
|
242
|
+
|
243
|
+
<varlistentry>
|
244
|
+
<term><option>-L</option></term>
|
245
|
+
<term><option>--files-without-match</option></term>
|
246
|
+
|
247
|
+
<listitem>
|
248
|
+
<para>
|
249
|
+
Suppress normal output; instead print the name of each input file from which no
|
250
|
+
output would normally have been printed.
|
251
|
+
</para>
|
252
|
+
</listitem>
|
253
|
+
</varlistentry>
|
254
|
+
|
255
|
+
<varlistentry>
|
256
|
+
<term><option>-l</option></term>
|
257
|
+
<term><option>--files-with-matches</option></term>
|
258
|
+
|
259
|
+
<listitem>
|
260
|
+
<para>
|
261
|
+
Suppress normal output; instead print the name of each input file from which output
|
262
|
+
would normally have been printed. The scalling will stop on the first match.
|
263
|
+
</para>
|
264
|
+
</listitem>
|
265
|
+
</varlistentry>
|
266
|
+
|
267
|
+
<varlistentry>
|
268
|
+
<term><option>-H</option></term>
|
269
|
+
<term><option>--with-filename</option></term>
|
270
|
+
|
271
|
+
<listitem>
|
272
|
+
<para>
|
273
|
+
Print the file name for each match. This is the default when there is more than one
|
274
|
+
file to search.
|
275
|
+
</para>
|
276
|
+
</listitem>
|
277
|
+
</varlistentry>
|
278
|
+
|
279
|
+
<varlistentry>
|
280
|
+
<term><option>-h</option></term>
|
281
|
+
<term><option>--no-filename</option></term>
|
282
|
+
|
283
|
+
<listitem>
|
284
|
+
<para>
|
285
|
+
Suppress the prefixing of file names on output. This is the default when there is
|
286
|
+
only one file to search.
|
287
|
+
</para>
|
288
|
+
</listitem>
|
289
|
+
</varlistentry>
|
290
|
+
|
291
|
+
<varlistentry>
|
292
|
+
<term><option>-Z</option></term>
|
293
|
+
<term><option>--null</option></term>
|
294
|
+
|
295
|
+
<listitem>
|
296
|
+
<para>
|
297
|
+
Output a zero byte (the ASCII <literal>NUL</literal> character) instead of the
|
298
|
+
character that normally follows a file name. For example <command>elfgrep
|
299
|
+
-lZ</command> outputs a zero byte after each file name instead of the usual
|
300
|
+
newline. This option makes the output unambiguous, even in presence of file names
|
301
|
+
containing unusual characters like newlines, so that it can be used with commands
|
302
|
+
like <command>xargs -0</command>.
|
303
|
+
</para>
|
304
|
+
</listitem>
|
305
|
+
</varlistentry>
|
306
|
+
</variablelist>
|
307
|
+
</refsect2>
|
308
|
+
|
309
|
+
<refsect2>
|
310
|
+
<title>General Options</title>
|
311
|
+
|
312
|
+
<variablelist>
|
313
|
+
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.option')/*)" />
|
314
|
+
</variablelist>
|
315
|
+
</refsect2>
|
316
|
+
</refsect1>
|
317
|
+
|
318
|
+
<refsect1>
|
319
|
+
<title>Bugs and Missing Features</title>
|
320
|
+
|
321
|
+
<para>
|
322
|
+
By default, <application>elfgrep</application> uses standard Ruby regular expressions,
|
323
|
+
which are neither the basic or extended regular expressions as implemented by
|
324
|
+
<citerefentry><refentrytitle>grep</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
325
|
+
nor the Perl (or compatible) regular expressions.
|
326
|
+
</para>
|
327
|
+
|
328
|
+
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.bugpara')/*)" />
|
329
|
+
</refsect1>
|
330
|
+
|
331
|
+
<refsect1>
|
332
|
+
<title>See Also</title>
|
333
|
+
<para>
|
334
|
+
<citation xl:href="http://blog.flameeyes.eu/">Flameeyes's Weblog</citation>
|
335
|
+
http://blog.flameeyes.eu/
|
336
|
+
</para>
|
337
|
+
|
338
|
+
<para>
|
339
|
+
Related tools:
|
340
|
+
|
341
|
+
<citerefentry>
|
342
|
+
<refentrytitle>grep</refentrytitle>
|
343
|
+
<manvolnum>1</manvolnum>
|
344
|
+
</citerefentry>,
|
345
|
+
|
346
|
+
<citerefentry>
|
347
|
+
<refentrytitle>nm</refentrytitle>
|
348
|
+
<manvolnum>1</manvolnum>
|
349
|
+
</citerefentry>.
|
350
|
+
</para>
|
351
|
+
|
352
|
+
<para>
|
353
|
+
Lots of description of options above are lifted directly from the
|
354
|
+
<application>grep</application> man page, to avoid confusing with different
|
355
|
+
wordings.
|
356
|
+
</para>
|
357
|
+
</refsect1>
|
358
|
+
</refentry>
|
359
|
+
</section>
|
360
|
+
</article>
|
361
|
+
<!--
|
362
|
+
Local Variables:
|
363
|
+
mode: nxml
|
364
|
+
mode: auto-fill
|
365
|
+
mode: flyspell
|
366
|
+
ispell-local-dictionary: "english"
|
367
|
+
fill-column: 100
|
368
|
+
indent-tabs-mode: nil
|
369
|
+
End:
|
370
|
+
-->
|
@@ -0,0 +1,290 @@
|
|
1
|
+
<?xml version='1.0'?>
|
2
|
+
<!--
|
3
|
+
Copyright © 2008-2011, Diego "Flameeyes" Pettenò <flameeyes@gmail.com>
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with this generator; if not, write to the Free Software
|
17
|
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
-->
|
19
|
+
<article xmlns="http://docbook.org/ns/docbook"
|
20
|
+
xmlns:xl="http://www.w3.org/1999/xlink"
|
21
|
+
xmlns:xi="http://www.w3.org/2001/XInclude"
|
22
|
+
version="5.0" xml:lang="en">
|
23
|
+
<info>
|
24
|
+
<title>missingstatic</title>
|
25
|
+
|
26
|
+
<xi:include parse="xml" href="author.xmli" />
|
27
|
+
</info>
|
28
|
+
|
29
|
+
<section>
|
30
|
+
<title>Reference</title>
|
31
|
+
|
32
|
+
<refentry>
|
33
|
+
<info>
|
34
|
+
<date>October 2008</date>
|
35
|
+
<productname>ruby-elf</productname>
|
36
|
+
</info>
|
37
|
+
<refmeta>
|
38
|
+
<refentrytitle>missingstatic</refentrytitle>
|
39
|
+
<manvolnum>1</manvolnum>
|
40
|
+
</refmeta>
|
41
|
+
<refnamediv>
|
42
|
+
<refname>missingstatic</refname>
|
43
|
+
<refpurpose>ELF analyzer to identify missing static modifiers</refpurpose>
|
44
|
+
</refnamediv>
|
45
|
+
<refsynopsisdiv>
|
46
|
+
<cmdsynopsis>
|
47
|
+
<command>missingstatic</command>
|
48
|
+
<arg choice="opt"><option>--hidden-only</option></arg>
|
49
|
+
<arg choice="opt"><option>--show-type</option></arg>
|
50
|
+
<arg choice="opt">
|
51
|
+
<option>--exclude-regexp</option>
|
52
|
+
<replaceable>regular-expression</replaceable>
|
53
|
+
</arg>
|
54
|
+
<arg choice="opt">
|
55
|
+
<option>--exclude-tags</option>
|
56
|
+
<replaceable>tags-file</replaceable>
|
57
|
+
</arg>
|
58
|
+
|
59
|
+
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.synopsis')/*)" />
|
60
|
+
</cmdsynopsis>
|
61
|
+
</refsynopsisdiv>
|
62
|
+
|
63
|
+
<refsect1>
|
64
|
+
<title>Description</title>
|
65
|
+
<para>
|
66
|
+
<command>missingstatic</command> is a script that analyses ELF object files to identify
|
67
|
+
symbols that are unused outside their compilation unit. Those symbols are usually
|
68
|
+
candidate for the <constant>static</constant> modifier, to make the symbol local to the
|
69
|
+
unit.
|
70
|
+
</para>
|
71
|
+
|
72
|
+
<para>
|
73
|
+
In addition to symbols that are used only internally to an unit, this script will most
|
74
|
+
likely report the almost entire set of externally-visible API in the case of
|
75
|
+
libraries. For this reason, options are provided to reduce the scope of action.
|
76
|
+
</para>
|
77
|
+
</refsect1>
|
78
|
+
|
79
|
+
<refsect1>
|
80
|
+
<title>Options</title>
|
81
|
+
|
82
|
+
<variablelist>
|
83
|
+
<varlistentry>
|
84
|
+
<term><option>-h</option></term>
|
85
|
+
<term><option>--hidden-only</option></term>
|
86
|
+
<listitem>
|
87
|
+
<para>
|
88
|
+
Only show symbols that have hidden visibility. Hidden symbols are not visible from
|
89
|
+
outside the module, and thus will ignore the external visible symbols that compose
|
90
|
+
the externally-visible API. This option is only useful for libraries that make
|
91
|
+
proper use of visibility attributes.
|
92
|
+
</para>
|
93
|
+
</listitem>
|
94
|
+
</varlistentry>
|
95
|
+
|
96
|
+
<varlistentry>
|
97
|
+
<term><option>-t</option></term>
|
98
|
+
<term><option>--show-type</option></term>
|
99
|
+
<listitem>
|
100
|
+
<para>
|
101
|
+
Show the type of the symbol. The symbols reported by the script might be functions,
|
102
|
+
variables, or constants. By default, only the name of the symbol, with this option,
|
103
|
+
a letter in front of the symbol will tell you the type of it; the letters are the
|
104
|
+
same as used by GNU
|
105
|
+
<citerefentry><refentrytitle>nm</refentrytitle><manvolnum>1</manvolnum></citerefentry>:
|
106
|
+
|
107
|
+
<variablelist>
|
108
|
+
<varlistentry>
|
109
|
+
<term>T</term>
|
110
|
+
<listitem>
|
111
|
+
<para>
|
112
|
+
The symbol is in the text (code) section, and is thus a function
|
113
|
+
</para>
|
114
|
+
</listitem>
|
115
|
+
</varlistentry>
|
116
|
+
|
117
|
+
<varlistentry>
|
118
|
+
<term>B</term>
|
119
|
+
<listitem>
|
120
|
+
<para>
|
121
|
+
The symbol is in the uninitialised data section (known as BSS), and is thus
|
122
|
+
a variable.
|
123
|
+
</para>
|
124
|
+
</listitem>
|
125
|
+
</varlistentry>
|
126
|
+
|
127
|
+
<varlistentry>
|
128
|
+
<term>D</term>
|
129
|
+
<listitem>
|
130
|
+
<para>
|
131
|
+
The symbol is in the initialised data section, and is thus a variable.
|
132
|
+
</para>
|
133
|
+
</listitem>
|
134
|
+
</varlistentry>
|
135
|
+
|
136
|
+
<varlistentry>
|
137
|
+
<term>R</term>
|
138
|
+
<listitem>
|
139
|
+
<para>
|
140
|
+
The symbol is in the read only data section, and is thus a constant.
|
141
|
+
</para>
|
142
|
+
</listitem>
|
143
|
+
</varlistentry>
|
144
|
+
|
145
|
+
</variablelist>
|
146
|
+
|
147
|
+
</para>
|
148
|
+
</listitem>
|
149
|
+
</varlistentry>
|
150
|
+
|
151
|
+
<varlistentry>
|
152
|
+
<term>
|
153
|
+
<option>-x</option>
|
154
|
+
<replaceable>regular-expression</replaceable>
|
155
|
+
</term>
|
156
|
+
<term>
|
157
|
+
<option>--exclude-regexp</option>
|
158
|
+
<replaceable>regular-expression</replaceable>
|
159
|
+
</term>
|
160
|
+
<listitem>
|
161
|
+
<para>
|
162
|
+
Ignore symbols whose name triggers the given regular expression. This option is
|
163
|
+
useful to hide all the symbols of the public API of a library if they all have the
|
164
|
+
same prefix. It can be used multiple times.
|
165
|
+
</para>
|
166
|
+
</listitem>
|
167
|
+
</varlistentry>
|
168
|
+
|
169
|
+
<varlistentry>
|
170
|
+
<term>
|
171
|
+
<option>-X</option>
|
172
|
+
<replaceable>tags-file</replaceable>
|
173
|
+
</term>
|
174
|
+
<term>
|
175
|
+
<option>--exclude-tags</option>
|
176
|
+
<replaceable>tags-file</replaceable>
|
177
|
+
</term>
|
178
|
+
<listitem>
|
179
|
+
<para>
|
180
|
+
Ignore symbols present in a tags file created by
|
181
|
+
<command>exuberant-ctags</command>. This option is useful to hide all the symbols in
|
182
|
+
the public header files of a project, by creating a list of public-visible
|
183
|
+
symbols. See the <link linkend="examples">EXAMPLES</link> section for how to
|
184
|
+
generate such a tags file. It can be used multiple times.
|
185
|
+
</para>
|
186
|
+
|
187
|
+
</listitem>
|
188
|
+
</varlistentry>
|
189
|
+
|
190
|
+
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.option')/*)" />
|
191
|
+
|
192
|
+
</variablelist>
|
193
|
+
</refsect1>
|
194
|
+
|
195
|
+
<refsect1 xml:id="examples">
|
196
|
+
<title>Examples</title>
|
197
|
+
|
198
|
+
<refsect2>
|
199
|
+
<title>Generating the tags file</title>
|
200
|
+
|
201
|
+
<para>
|
202
|
+
To generate a tags file compatible with the <option>--exclude-tags</option> command-line
|
203
|
+
option, you can use
|
204
|
+
<citerefentry>
|
205
|
+
<refentrytitle>exuberant-ctags</refentrytitle>
|
206
|
+
<manvolnum>1</manvolnum>
|
207
|
+
</citerefentry>
|
208
|
+
with a command similar to the following:
|
209
|
+
</para>
|
210
|
+
|
211
|
+
<example>
|
212
|
+
<title>
|
213
|
+
Generate a tags file for public header files
|
214
|
+
</title>
|
215
|
+
|
216
|
+
<programlisting>
|
217
|
+
exuberant-ctags --c-kinds=px -f public-symbols include/public/*.h
|
218
|
+
</programlisting>
|
219
|
+
</example>
|
220
|
+
</refsect2>
|
221
|
+
|
222
|
+
<refsect2>
|
223
|
+
<title>Sorting <command>missingstatic</command> output</title>
|
224
|
+
|
225
|
+
<para>
|
226
|
+
Since sorting by translation unit is non-trivial inside the script, piping through
|
227
|
+
<citerefentry>
|
228
|
+
<refentrytitle>sort</refentrytitle>
|
229
|
+
<manvolnum>1</manvolnum>
|
230
|
+
</citerefentry>
|
231
|
+
is suggested. Using the <option>-k</option> option it's possible to sort for the desired
|
232
|
+
key, may it be the symbol name, the translation unit name or the symbol type.
|
233
|
+
</para>
|
234
|
+
|
235
|
+
<example>
|
236
|
+
<title>Sorting <command>missingstatic</command> output for translation unit name
|
237
|
+
</title>
|
238
|
+
|
239
|
+
<programlisting>
|
240
|
+
find . -name '*.o' | missingstatic -h | sort -k2
|
241
|
+
</programlisting>
|
242
|
+
</example>
|
243
|
+
</refsect2>
|
244
|
+
</refsect1>
|
245
|
+
|
246
|
+
<refsect1>
|
247
|
+
<title>Bugs and Missing Features</title>
|
248
|
+
<para>
|
249
|
+
<command>missingstatic</command> assumes that all the sources for a module and just that
|
250
|
+
module will be passed to it, if more or less sources will be passed to the command, the
|
251
|
+
results might not be the expected ones.
|
252
|
+
</para>
|
253
|
+
|
254
|
+
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.bugpara')/*)" />
|
255
|
+
</refsect1>
|
256
|
+
|
257
|
+
<refsect1>
|
258
|
+
<title>See Also</title>
|
259
|
+
<para>
|
260
|
+
<citation xl:href="http://blog.flameeyes.eu/">Flameeyes's Weblog</citation>
|
261
|
+
http://blog.flameeyes.eu/
|
262
|
+
</para>
|
263
|
+
|
264
|
+
<para>
|
265
|
+
Related tools:
|
266
|
+
|
267
|
+
<citerefentry>
|
268
|
+
<refentrytitle>nm</refentrytitle>
|
269
|
+
<manvolnum>1</manvolnum>
|
270
|
+
</citerefentry>,
|
271
|
+
|
272
|
+
<citerefentry>
|
273
|
+
<refentrytitle>exuberant-ctags</refentrytitle>
|
274
|
+
<manvolnum>1</manvolnum>
|
275
|
+
</citerefentry>.
|
276
|
+
</para>
|
277
|
+
</refsect1>
|
278
|
+
</refentry>
|
279
|
+
</section>
|
280
|
+
</article>
|
281
|
+
<!--
|
282
|
+
Local Variables:
|
283
|
+
mode: nxml
|
284
|
+
mode: auto-fill
|
285
|
+
mode: flyspell
|
286
|
+
ispell-local-dictionary: "english"
|
287
|
+
fill-column: 100
|
288
|
+
indent-tabs-mode: nil
|
289
|
+
End:
|
290
|
+
-->
|