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