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