xref: /illumos-gate/usr/src/man/man1/ctfdump.1 (revision 279209130920025623a312e02980ec58c0f39430)
1bc1f688bSRobert Mustacchi.\"
2bc1f688bSRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3bc1f688bSRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4bc1f688bSRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5bc1f688bSRobert Mustacchi.\" 1.0 of the CDDL.
6bc1f688bSRobert Mustacchi.\"
7bc1f688bSRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8bc1f688bSRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9bc1f688bSRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10bc1f688bSRobert Mustacchi.\"
11bc1f688bSRobert Mustacchi.\"
12bc1f688bSRobert Mustacchi.\" Copyright 2018, Joyent, Inc.
13bc1f688bSRobert Mustacchi.\"
14*27920913SRobert Mustacchi.Dd September 20, 2021
15bc1f688bSRobert Mustacchi.Dt CTFDUMP 1
16bc1f688bSRobert Mustacchi.Os
17bc1f688bSRobert Mustacchi.Sh NAME
18bc1f688bSRobert Mustacchi.Nm ctfdump
19bc1f688bSRobert Mustacchi.Nd dump parts of ctf data from files
20bc1f688bSRobert Mustacchi.Sh SYNOPSIS
21bc1f688bSRobert Mustacchi.Nm ctfdump
22bc1f688bSRobert Mustacchi.Op Fl cdfhlsSt
23bc1f688bSRobert Mustacchi.Op Fl p Ar parent
24bc1f688bSRobert Mustacchi.Op Fl u Ar outfile
25bc1f688bSRobert Mustacchi.Ar file
26bc1f688bSRobert Mustacchi.Sh DESCRIPTION
27bc1f688bSRobert MustacchiThe
28bc1f688bSRobert Mustacchi.Nm
29bc1f688bSRobert Mustacchiutility dumps and decodes the
30bc1f688bSRobert Mustacchi.Sy CTF
31bc1f688bSRobert Mustacchidata contained inside of
32bc1f688bSRobert Mustacchi.Sy ELF
33bc1f688bSRobert Mustacchiobjects and raw
34bc1f688bSRobert Mustacchi.Sy CTF
35bc1f688bSRobert Mustacchifiles.
36bc1f688bSRobert Mustacchi.Lp
37bc1f688bSRobert Mustacchi.Nm
38bc1f688bSRobert Mustacchican dump information about the
39bc1f688bSRobert Mustacchi.Sy CTF header ,
40bc1f688bSRobert Mustacchithe
41bc1f688bSRobert Mustacchi.Sy labels
42bc1f688bSRobert Mustacchiencoded in the
43bc1f688bSRobert Mustacchi.Sy CTF
44bc1f688bSRobert Mustacchicontainer,
45bc1f688bSRobert Mustacchithe types of
46bc1f688bSRobert Mustacchi.Sy data objects ,
47bc1f688bSRobert Mustacchithe internal
48bc1f688bSRobert Mustacchi.Sy string
49bc1f688bSRobert Mustacchitable,
50bc1f688bSRobert Mustacchithe types of the return function and the arguments for
51bc1f688bSRobert Mustacchi.Sy functions ,
52bc1f688bSRobert Mustacchiand of course, it displays information about the
53bc1f688bSRobert Mustacchi.Sy types
54bc1f688bSRobert Mustacchidefined in the
55bc1f688bSRobert Mustacchi.Sy CTF
56bc1f688bSRobert Mustacchicontainer.
57bc1f688bSRobert Mustacchi.Lp
58bc1f688bSRobert Mustacchi.Nm
59bc1f688bSRobert Mustacchican also be used to dump out the raw
60bc1f688bSRobert Mustacchi.Sy CTF
61bc1f688bSRobert Mustacchidata and send it to another file.
62bc1f688bSRobert MustacchiWhen writing out data, it always ensures that the
63bc1f688bSRobert Mustacchi.Sy CTF
64bc1f688bSRobert Mustacchidata is decompressed.
65bc1f688bSRobert MustacchiIn this form, the
66bc1f688bSRobert Mustacchi.Sy CTF
67bc1f688bSRobert Mustacchidata can be inspected using
68bc1f688bSRobert Mustacchi.Nm
69bc1f688bSRobert Mustacchiand other tools such as
70bc1f688bSRobert Mustacchi.Xr mdb 1 .
71bc1f688bSRobert Mustacchi.Lp
72bc1f688bSRobert Mustacchi.Nm
73bc1f688bSRobert Mustacchiin
74bc1f688bSRobert Mustacchi.Fl c
75bc1f688bSRobert Mustacchimode will generate C-style output, which can be used for comparison.
76bc1f688bSRobert MustacchiNote that this output is not directly compilable.
77bc1f688bSRobert Mustacchi.Lp
78bc1f688bSRobert MustacchiWhen no options are specified,
79bc1f688bSRobert Mustacchi.Nm
80bc1f688bSRobert Mustacchidisplays all information, except the C-style output.
81bc1f688bSRobert MustacchiHowever, when the
82bc1f688bSRobert Mustacchi.Fl u
83bc1f688bSRobert Mustacchioption is used, then no information is displayed by default, unless
84bc1f688bSRobert Mustacchirequested through the appropriate option.
85bc1f688bSRobert Mustacchi.Sh OPTIONS
86bc1f688bSRobert MustacchiThe following options are supported:
87bc1f688bSRobert Mustacchi.Bl -hang -width Ds
88bc1f688bSRobert Mustacchi.It Fl c
89bc1f688bSRobert Mustacchi.Bd -filled -compact
90bc1f688bSRobert MustacchiGenerate C-style output.
91bc1f688bSRobert Mustacchi.Ed
92bc1f688bSRobert Mustacchi.It Fl d
93bc1f688bSRobert Mustacchi.Bd -filled -compact
94bc1f688bSRobert MustacchiDump the types of symbols that correspond to objects.
95bc1f688bSRobert Mustacchi.Ed
96bc1f688bSRobert Mustacchi.It Fl f
97bc1f688bSRobert Mustacchi.Bd -filled -compact
98bc1f688bSRobert MustacchiDump the types of the return values and arguments of the functions.
99bc1f688bSRobert Mustacchi.Ed
100bc1f688bSRobert Mustacchi.It Fl h
101bc1f688bSRobert Mustacchi.Bd -filled -compact
102bc1f688bSRobert MustacchiDump the
103bc1f688bSRobert Mustacchi.Sy CTF
104bc1f688bSRobert Mustacchiheader
105bc1f688bSRobert Mustacchi.Ed
106bc1f688bSRobert Mustacchi.It Fl l
107bc1f688bSRobert Mustacchi.Bd -filled -compact
108bc1f688bSRobert MustacchiDump all
109bc1f688bSRobert Mustacchi.Sy CTF
110bc1f688bSRobert Mustacchilabels associated with the file.
111bc1f688bSRobert Mustacchi.Ed
112bc1f688bSRobert Mustacchi.It Fl p Ar parent
113bc1f688bSRobert Mustacchi.Bd -filled -compact
114bc1f688bSRobert MustacchiUse the type information in
115bc1f688bSRobert Mustacchi.Em parent
116bc1f688bSRobert Mustacchito supplement output.
117bc1f688bSRobert MustacchiThis is useful when a
118bc1f688bSRobert Mustacchi.Nm CTF
119bc1f688bSRobert Mustacchicontainer has been
120bc1f688bSRobert Mustacchi.Sy uniquified
121bc1f688bSRobert Mustacchiagainst
122bc1f688bSRobert Mustacchi.Em parent .
123bc1f688bSRobert MustacchiThis allows
124bc1f688bSRobert Mustacchi.Nm
125bc1f688bSRobert Mustacchito use the names of types when used with
126bc1f688bSRobert Mustacchi.Fl t .
127bc1f688bSRobert Mustacchi.Ed
128bc1f688bSRobert Mustacchi.It Fl s
129bc1f688bSRobert Mustacchi.Bd -filled -compact
130bc1f688bSRobert MustacchiDump the internal
131bc1f688bSRobert Mustacchi.Sy CTF
132bc1f688bSRobert Mustacchistring table
133bc1f688bSRobert Mustacchi.Ed
134bc1f688bSRobert Mustacchi.It Fl S
135bc1f688bSRobert Mustacchi.Bd -filled -compact
136bc1f688bSRobert MustacchiDisplays statistics about the
137bc1f688bSRobert Mustacchi.Sy CTF
138bc1f688bSRobert Mustacchicontainer.
139bc1f688bSRobert Mustacchi.Ed
140bc1f688bSRobert Mustacchi.It Fl t
141bc1f688bSRobert Mustacchi.Bd -filled -compact
142bc1f688bSRobert MustacchiDump the type information contained in the
143bc1f688bSRobert Mustacchi.Sy CTF
1440a554e9fSPeter Tribblecontainer.
145bc1f688bSRobert Mustacchi.Ed
146bc1f688bSRobert Mustacchi.It Fl u Ar outfile
147bc1f688bSRobert Mustacchi.Bd -filled -compact
148bc1f688bSRobert MustacchiCopies the uncompressed
149bc1f688bSRobert Mustacchi.Sy CTF
150bc1f688bSRobert Mustacchidata to the file specified by
151bc1f688bSRobert Mustacchi.Em outfile .
152bc1f688bSRobert MustacchiThis can be used to make it easier to inspect the raw
153bc1f688bSRobert Mustacchi.Sy CTF
154bc1f688bSRobert Mustacchidata.
155bc1f688bSRobert Mustacchi.Ed
156bc1f688bSRobert Mustacchi.El
157bc1f688bSRobert Mustacchi.Sh OUTPUT
158bc1f688bSRobert MustacchiWhen the
159bc1f688bSRobert Mustacchi.Nm
160bc1f688bSRobert Mustacchiutility is executed with its default options, it prints out a textual
161bc1f688bSRobert Mustacchirepresentation of the
162bc1f688bSRobert Mustacchi.Sy CTF
163bc1f688bSRobert Mustacchiinformation.
164bc1f688bSRobert MustacchiNote, the output format of
165bc1f688bSRobert Mustacchi.Nm
166bc1f688bSRobert Mustacchiis subject to change at any time and should not be relied upon as a
167bc1f688bSRobert Mustacchistable format to be used for parsing.
168bc1f688bSRobert Mustacchi.Ss CTF Header
169bc1f688bSRobert MustacchiThis section describes the values in the
170bc1f688bSRobert Mustacchi.Sy CTF
171bc1f688bSRobert Mustacchiheader.
172bc1f688bSRobert MustacchiEach line in the section describes the value of one of the
173bc1f688bSRobert Mustacchimembers of the header.
174bc1f688bSRobert MustacchiFor more information on the meaning and interpretation of these members,
175bc1f688bSRobert Mustacchisee
176bc1f688bSRobert Mustacchi.Xr ctf 4 .
177bc1f688bSRobert Mustacchi.Ss Label Table
178bc1f688bSRobert MustacchiThis section describes information about the labels present in the
179bc1f688bSRobert Mustacchi.Sy CTF
180bc1f688bSRobert Mustacchiinformation.
181bc1f688bSRobert MustacchiEach entry in this section, if present, starts with a
182bc1f688bSRobert Mustacchinumber and is followed by a string.
183bc1f688bSRobert MustacchiAn example entry in the label section might look like:
184bc1f688bSRobert Mustacchi.Bd -literal
185bc1f688bSRobert Mustacchi\&...
186bc1f688bSRobert Mustacchi   2270 joyent_20151001T070028Z
187bc1f688bSRobert Mustacchi\&...
188bc1f688bSRobert Mustacchi.Ed
189bc1f688bSRobert Mustacchi.Pp
190bc1f688bSRobert MustacchiThe number,
191bc1f688bSRobert Mustacchi.Em 2270 ,
192bc1f688bSRobert Mustacchirepresents the last type that the label applies to.
193bc1f688bSRobert MustacchiThe string,
194bc1f688bSRobert Mustacchi.Em joyent_20151001T070028Z ,
195bc1f688bSRobert Mustacchiis the name of the label.
196bc1f688bSRobert MustacchiIn this case, if there were no other labels,
197bc1f688bSRobert Mustacchiit would indicate that the label applied to all types up to, and
198bc1f688bSRobert Mustacchiincluding, the type number 2270.
199bc1f688bSRobert MustacchiFor more information on how labels are used with
200bc1f688bSRobert Mustacchi.Sy CTF
201bc1f688bSRobert Mustacchiinformation, see the section
202bc1f688bSRobert Mustacchi.Em The Label Section
203bc1f688bSRobert Mustacchiin
204bc1f688bSRobert Mustacchi.Xr ctf 4 .
205bc1f688bSRobert Mustacchi.Ss Data Objects
206bc1f688bSRobert MustacchiThis section describes the type information relating to data objects
207bc1f688bSRobert Mustacchifrom the symbol table.
208bc1f688bSRobert MustacchiAn entry for a data object consists of four columns.
209bc1f688bSRobert MustacchiThe first column is just a monotonic ID.
210bc1f688bSRobert MustacchiThe second number is the type id of the object.
211bc1f688bSRobert MustacchiThe third column is the name of the symbol and the fourth column is the
212bc1f688bSRobert Mustacchicorresponding index from the symbol table.
213bc1f688bSRobert Mustacchi.Pp
214bc1f688bSRobert MustacchiTake for example, the following couple of entries:
215bc1f688bSRobert Mustacchi.Bd -literal
216bc1f688bSRobert Mustacchi\&...
217bc1f688bSRobert Mustacchi  [0] 13        hz (48)
218bc1f688bSRobert Mustacchi  [1] 78        _nd (49)
219bc1f688bSRobert Mustacchi  [2] 1656      __pfmt_label (56)
220bc1f688bSRobert Mustacchi  [3] 926       _aio_hash (68)
221bc1f688bSRobert Mustacchi  [4] 13        _lio_free (70)
222bc1f688bSRobert Mustacchi  [5] 1321      u8_number_of_bytes (73)
223bc1f688bSRobert Mustacchi\&...
224bc1f688bSRobert Mustacchi.Ed
225bc1f688bSRobert Mustacchi.Pp
226bc1f688bSRobert MustacchiLet's take the first entry in the list above.
227bc1f688bSRobert MustacchiThe symbol is named
228bc1f688bSRobert Mustacchi.Sy hz .
229bc1f688bSRobert MustacchiIt is the first data object, as indicated by the number zero in
230bc1f688bSRobert Mustacchibrackets.
231bc1f688bSRobert MustacchiIt has a type id of 13 and in this case, it has a symbol table index of
232bc1f688bSRobert Mustacchi48.
233bc1f688bSRobert Mustacchi.Ss Functions
234bc1f688bSRobert MustacchiThis section describes the type information for functions.
235bc1f688bSRobert MustacchiFor each function present in the symbol table with type information, the
236bc1f688bSRobert Mustacchifunction's entry into the function section, the function's name, the
237bc1f688bSRobert Mustacchifunction's symbol table index, the function's return type, and the types
238bc1f688bSRobert Mustacchiof the function's arguments are printed.
239bc1f688bSRobert MustacchiIf a function is a variadic function, then the variadic argument is
240bc1f688bSRobert Mustacchiprinted as the string
241bc1f688bSRobert Mustacchi.Sy '...' .
242bc1f688bSRobert Mustacchi.Pp
243bc1f688bSRobert MustacchiTake for example, the following couple of entries:
244bc1f688bSRobert Mustacchi.Bd -literal
245bc1f688bSRobert Mustacchi\&...
246bc1f688bSRobert Mustacchi  [687] pfprint_stack (3110) returns: 11 args: (385, 115, 29, 1704, 223, 116, 2)
247bc1f688bSRobert Mustacchi  [688] pfprint_stddev (3111) returns: 11 args: (385, 115, 29, 1704, 223, 116, 2)
248bc1f688bSRobert Mustacchi  [689] pfprint_quantize (3112) returns: 11 args: (385, 115, 29, 1704, 223, 116, 2)
249bc1f688bSRobert Mustacchi  [690] pfprint_lquantize (3113) returns: 11 args: (385, 115, 29, 1704, 223, 116, 2)
250bc1f688bSRobert Mustacchi  [691] pfprint_llquantize (3114) returns: 11 args: (385, 115, 29, 1704, 223, 116, 2)
251bc1f688bSRobert Mustacchi\&...
252bc1f688bSRobert Mustacchi.Ed
253bc1f688bSRobert Mustacchi.Pp
254bc1f688bSRobert MustacchiThe first column is the function's entry number in the function type
255bc1f688bSRobert Mustacchiinformation section.
256bc1f688bSRobert MustacchiIt is enclosed in brackets.
257bc1f688bSRobert MustacchiThe next column is the function's name and it is followed in parenthesis
258bc1f688bSRobert Mustacchiby the its index in the
259bc1f688bSRobert Mustacchisymbol table.
260bc1f688bSRobert MustacchiThe following portions of this entry describe the return
261bc1f688bSRobert Mustacchitype and then all of the arguments, in positional order.
262bc1f688bSRobert Mustacchi.Ss Types
263bc1f688bSRobert MustacchiThe types section gives information about each type in the
264bc1f688bSRobert Mustacchi.Sy CTF
265bc1f688bSRobert Mustacchicontainer.
266bc1f688bSRobert MustacchiEach entry begins with its type identifier.
267bc1f688bSRobert MustacchiThe type identifier may either be in square brackets or in angle
268bc1f688bSRobert Mustacchibrackets.
269bc1f688bSRobert MustacchiIf the type identifier is enclosed in angle brackets, then that
270bc1f688bSRobert Mustacchirepresents that it is a root type or top-level type.
271bc1f688bSRobert MustacchiIf it is square brackets, then it is not.
272bc1f688bSRobert MustacchiFor more information on root types, see
273bc1f688bSRobert Mustacchi.Xr ctf 4 .
274bc1f688bSRobert Mustacchi.Pp
275bc1f688bSRobert MustacchiNext, the type will have its name and kind.
276bc1f688bSRobert MustacchiIf it is an array, it will be followed with a subscript that describes
277bc1f688bSRobert Mustacchithe number of entries in the array.
278bc1f688bSRobert MustacchiIf it is a pointer, it will followed by the
279bc1f688bSRobert Mustacchi.Sy *
280bc1f688bSRobert Mustacchisymbol to indicate that it is a pointer.
281bc1f688bSRobert MustacchiIf the type has the
282bc1f688bSRobert Mustacchi.Sy const ,
283bc1f688bSRobert Mustacchi.Sy volatile ,
284bc1f688bSRobert Mustacchi.Sy typedef ,
285bc1f688bSRobert Mustacchior
286bc1f688bSRobert Mustacchi.Sy restrict
287bc1f688bSRobert Mustacchikeyword applied to it, that will precede the name.
288bc1f688bSRobert MustacchiAll of these reference types, including pointer, will then be followed
289bc1f688bSRobert Mustacchiwith an example of the type that they refer to.
290bc1f688bSRobert Mustacchi.Pp
291bc1f688bSRobert MustacchiTypes which are an integral or floating point value will be followed by
292bc1f688bSRobert Mustacchiinformation about their encoding and the number of bits represented in
293bc1f688bSRobert Mustacchithe type.
294bc1f688bSRobert Mustacchi.Pp
295bc1f688bSRobert MustacchiArrays will be followed by two different entries, the contents and
296bc1f688bSRobert Mustacchiindex.
297bc1f688bSRobert MustacchiThe contents member contains the type id of the array's contents
298bc1f688bSRobert Mustacchiand the index member describes a type which can represent the array's
299bc1f688bSRobert Mustacchiindex.
300bc1f688bSRobert Mustacchi.Pp
301bc1f688bSRobert MustacchiStructures and unions will be preceded with the corresponding C keyword,
302bc1f688bSRobert Mustacchi.Sy struct
303bc1f688bSRobert Mustacchior
304bc1f688bSRobert Mustacchi.Sy union .
305bc1f688bSRobert MustacchiAfter that, the size in bytes of the structure will be indicated.
306bc1f688bSRobert MustacchiON each subsequent line, a single member will be listed.
307bc1f688bSRobert MustacchiThat line will contain the member's name, it's type identifier, and the
308bc1f688bSRobert Mustacchioffset into the structure that it can be found in, in bits.
309bc1f688bSRobert Mustacchi.Pp
310bc1f688bSRobert MustacchiThe following show examples of type information for all of these
311bc1f688bSRobert Mustacchidifferent types:
312bc1f688bSRobert Mustacchi.Bd -literal
313bc1f688bSRobert Mustacchi\&...
314bc1f688bSRobert Mustacchi  [5] char [12] contents: 1, index: 2
315bc1f688bSRobert Mustacchi  [6] short encoding=SIGNED offset=0 bits=16
316bc1f688bSRobert Mustacchi  <7> struct exit_status (4 bytes)
317bc1f688bSRobert Mustacchi        e_termination type=6 off=0
318bc1f688bSRobert Mustacchi        e_exit type=6 off=16
319bc1f688bSRobert Mustacchi
320bc1f688bSRobert Mustacchi  <8> typedef time_t refers to 2
321bc1f688bSRobert Mustacchi  <9> struct utmp (36 bytes)
322bc1f688bSRobert Mustacchi        ut_user type=3 off=0
323bc1f688bSRobert Mustacchi        ut_id type=4 off=64
324bc1f688bSRobert Mustacchi        ut_line type=5 off=96
325bc1f688bSRobert Mustacchi        ut_pid type=6 off=192
326bc1f688bSRobert Mustacchi        ut_type type=6 off=208
327bc1f688bSRobert Mustacchi        ut_exit type=7 off=224
328bc1f688bSRobert Mustacchi        ut_time type=8 off=256
329bc1f688bSRobert Mustacchi
330bc1f688bSRobert Mustacchi  <10> struct utmp * refers to 9
331bc1f688bSRobert Mustacchi  [11] const struct utmp refers to 9
332bc1f688bSRobert Mustacchi  [12] const struct utmp * refers to 11
333bc1f688bSRobert Mustacchi  <13> int encoding=SIGNED offset=0 bits=32
334bc1f688bSRobert Mustacchi  <14> typedef int32_t refers to 13
335bc1f688bSRobert Mustacchi\&...
336bc1f688bSRobert Mustacchi.Ed
337bc1f688bSRobert Mustacchi.Ss String Table
338bc1f688bSRobert MustacchiThis section describes all of the strings that are present in the
339bc1f688bSRobert Mustacchi.Sy CTF
340bc1f688bSRobert Mustacchicontainer.
341bc1f688bSRobert MustacchiEach line represents an entry in the string table.
342bc1f688bSRobert MustacchiFirst the byte offset into the string table is shown in brackets and
343bc1f688bSRobert Mustacchithen the
344bc1f688bSRobert Mustacchistring's value is displayed.
345bc1f688bSRobert MustacchiNote the following examples:
346bc1f688bSRobert Mustacchi.Bd -literal
347*27920913SRobert Mustacchi  [0] \e0
348bc1f688bSRobert Mustacchi  [1] joyent_20151001T070028Z
349bc1f688bSRobert Mustacchi  [25] char
350bc1f688bSRobert Mustacchi  [30] long
351bc1f688bSRobert Mustacchi  [35] short
352bc1f688bSRobert Mustacchi.Ed
353bc1f688bSRobert Mustacchi.Ss Statistics
354bc1f688bSRobert MustacchiThis section contains miscellaneous statistics about the
355bc1f688bSRobert Mustacchi.Sy CTF
356bc1f688bSRobert Mustacchidata present.
357bc1f688bSRobert MustacchiEach line contains a single statistic.
358bc1f688bSRobert MustacchiA brief explanation of the statistic is placed first, followed by an
359bc1f688bSRobert Mustacchiequals sign, and then finally the value.
360bc1f688bSRobert Mustacchi.Sh EXIT STATUS
361bc1f688bSRobert Mustacchi.Bl -inset
362bc1f688bSRobert Mustacchi.It Sy 0
363bc1f688bSRobert Mustacchi.Dl Execution completed successfully.
364bc1f688bSRobert Mustacchi.It Sy 1
365bc1f688bSRobert Mustacchi.Dl A fatal error occurred.
366bc1f688bSRobert Mustacchi.It Sy 2
367bc1f688bSRobert Mustacchi.Dl Invalid command line options were specified.
368bc1f688bSRobert Mustacchi.El
369bc1f688bSRobert Mustacchi.Sh EXAMPLES
370bc1f688bSRobert Mustacchi.Sy Example 1
371bc1f688bSRobert MustacchiDisplaying the Type Section of a Single File
372bc1f688bSRobert Mustacchi.Lp
373bc1f688bSRobert MustacchiThe following example dumps the type section of the file
374bc1f688bSRobert Mustacchi.Sy /usr/lib/libc.so.1 .
375bc1f688bSRobert Mustacchi.Bd -literal -offset 6n
376bc1f688bSRobert Mustacchi$ ctfdump -t /usr/lib/libc.so.1
377bc1f688bSRobert Mustacchi- Types ----------------------------------------------------
378bc1f688bSRobert Mustacchi
379bc1f688bSRobert Mustacchi  <1> int encoding=SIGNED offset=0 bits=32
380bc1f688bSRobert Mustacchi  <2> long encoding=SIGNED offset=0 bits=32
381bc1f688bSRobert Mustacchi  <3> typedef pid_t refers to 2
382bc1f688bSRobert Mustacchi  <4> unsigned int encoding=0x0 offset=0 bits=32
383bc1f688bSRobert Mustacchi  <5> typedef uid_t refers to 4
384bc1f688bSRobert Mustacchi  <6> typedef gid_t refers to 5
385bc1f688bSRobert Mustacchi  <7> typedef uintptr_t refers to 4
386bc1f688bSRobert Mustacchi\&...
387bc1f688bSRobert Mustacchi.Ed
388bc1f688bSRobert Mustacchi.Lp
389bc1f688bSRobert Mustacchi.Sy Example 2
390bc1f688bSRobert MustacchiDumping the CTF data to Another File
391bc1f688bSRobert Mustacchi.Lp
392bc1f688bSRobert MustacchiThe following example dumps the entire CTF data from the file
393bc1f688bSRobert Mustacchi.Sy /usr/lib/libc.so.1
394bc1f688bSRobert Mustacchiand places it into the file
395bc1f688bSRobert Mustacchi.Sy ctf.out .
396bc1f688bSRobert MustacchiThis then shows how you can use the
397bc1f688bSRobert Mustacchi.Xr mdb 1
398bc1f688bSRobert Mustacchito inspect its contents.
399bc1f688bSRobert Mustacchi.Bd -literal -offset 6n
400bc1f688bSRobert Mustacchi$ ctfdump -u ctf.out /usr/lib/libc.so.1
401bc1f688bSRobert Mustacchi$ mdb ./ctf.out
402bc1f688bSRobert Mustacchi> ::typedef -r /usr/lib/libctf.so.1
403bc1f688bSRobert Mustacchi> 0::print ctf_header_t
404bc1f688bSRobert Mustacchi{
405bc1f688bSRobert Mustacchi    cth_preamble = {
406bc1f688bSRobert Mustacchi        ctp_magic = 0xcff1
407bc1f688bSRobert Mustacchi        ctp_version = 0x2
408bc1f688bSRobert Mustacchi        ctp_flags = 0
409bc1f688bSRobert Mustacchi    }
410bc1f688bSRobert Mustacchi    cth_parlabel = 0
411bc1f688bSRobert Mustacchi    cth_parname = 0
412bc1f688bSRobert Mustacchi    cth_lbloff = 0
413bc1f688bSRobert Mustacchi    cth_objtoff = 0x8
414bc1f688bSRobert Mustacchi    cth_funcoff = 0x5e0
415bc1f688bSRobert Mustacchi    cth_typeoff = 0x7178
416bc1f688bSRobert Mustacchi    cth_stroff = 0x12964
417bc1f688bSRobert Mustacchi    cth_strlen = 0x7c9c
418bc1f688bSRobert Mustacchi}
419bc1f688bSRobert Mustacchi.Ed
420bc1f688bSRobert Mustacchi.Lp
421bc1f688bSRobert Mustacchi.Sy Example 3
422bc1f688bSRobert MustacchiDumping C-style output
423bc1f688bSRobert Mustacchi.Bd -literal -offset 6n
424bc1f688bSRobert Mustacchi$ ctfdump -c ./genunix | more
425bc1f688bSRobert Mustacchi/* Types */
426bc1f688bSRobert Mustacchi
427bc1f688bSRobert Mustacchitypedef Elf64_Addr Addr;
428bc1f688bSRobert Mustacchi
429bc1f688bSRobert Mustacchitypedef unsigned char Bool;
430bc1f688bSRobert Mustacchi
431bc1f688bSRobert Mustacchitypedef struct CK_AES_CCM_PARAMS CK_AES_CCM_PARAMS;
432bc1f688bSRobert Mustacchi
433bc1f688bSRobert Mustacchitypedef struct CK_AES_GCM_PARAMS CK_AES_GCM_PARAMS;
434bc1f688bSRobert Mustacchi\&...
435bc1f688bSRobert Mustacchi.Ed
436bc1f688bSRobert Mustacchi.Sh INTERFACE STABILITY
437bc1f688bSRobert MustacchiThe command syntax is
438bc1f688bSRobert Mustacchi.Sy Committed .
439bc1f688bSRobert MustacchiThe output format is
440bc1f688bSRobert Mustacchi.Sy Uncommitted .
441bc1f688bSRobert Mustacchi.Sh SEE ALSO
442bc1f688bSRobert Mustacchi.Xr ctfdiff 1 ,
443bc1f688bSRobert Mustacchi.Xr dump 1 ,
444bc1f688bSRobert Mustacchi.Xr elfdump 1 ,
445bc1f688bSRobert Mustacchi.Xr mdb 1 ,
446bc1f688bSRobert Mustacchi.Xr ctf 4
447