Lines Matching +full:expand +full:- +full:archive
1 //===- llvm-readobj.cpp - Dump contents of an Object File -----------------===//
8 //===----------------------------------------------------------------------===//
20 //===----------------------------------------------------------------------===//
22 #include "llvm-readobj.h"
26 #include "llvm/Object/Archive.h"
53 // -file-headers, -h
54 cl::opt<bool> FileHeaders("file-headers",
57 cl::desc("Alias for --file-headers"),
60 // -sections, -s
64 cl::desc("Alias for --sections"),
67 // -section-relocations, -sr
68 cl::opt<bool> SectionRelocations("section-relocations",
71 cl::desc("Alias for --section-relocations"),
74 // -section-symbols, -st
75 cl::opt<bool> SectionSymbols("section-symbols",
78 cl::desc("Alias for --section-symbols"),
81 // -section-data, -sd
82 cl::opt<bool> SectionData("section-data",
85 cl::desc("Alias for --section-data"),
88 // -relocations, -r
92 cl::desc("Alias for --relocations"),
95 // -dyn-relocations
96 cl::opt<bool> DynRelocs("dyn-relocations",
99 // -symbols, -t
103 cl::desc("Alias for --symbols"),
106 // -dyn-symbols, -dt
107 cl::opt<bool> DynamicSymbols("dyn-symbols",
110 cl::desc("Alias for --dyn-symbols"),
113 // -unwind, -u
117 cl::desc("Alias for --unwind"),
120 // -dynamic-table
121 cl::opt<bool> DynamicTable("dynamic-table",
124 // -needed-libs
125 cl::opt<bool> NeededLibraries("needed-libs",
128 // -program-headers
129 cl::opt<bool> ProgramHeaders("program-headers",
132 // -hash-table
133 cl::opt<bool> HashTable("hash-table",
136 // -gnu-hash-table
137 cl::opt<bool> GnuHashTable("gnu-hash-table",
140 // -expand-relocs
141 cl::opt<bool> ExpandRelocs("expand-relocs",
142 cl::desc("Expand each shown relocation to multiple lines"));
144 // -codeview
148 // -codeview-merged-types
150 CodeViewMergedTypes("codeview-merged-types",
153 // -codeview-subsection-bytes
155 "codeview-subsection-bytes",
158 // -arm-attributes, -a
159 cl::opt<bool> ARMAttributes("arm-attributes",
161 cl::alias ARMAttributesShort("-a", cl::desc("Alias for --arm-attributes"),
164 // -mips-plt-got
166 MipsPLTGOT("mips-plt-got",
169 // -mips-abi-flags
170 cl::opt<bool> MipsABIFlags("mips-abi-flags",
173 // -mips-reginfo
174 cl::opt<bool> MipsReginfo("mips-reginfo",
177 // -mips-options
178 cl::opt<bool> MipsOptions("mips-options",
181 // -coff-imports
183 COFFImports("coff-imports", cl::desc("Display the PE/COFF import table"));
185 // -coff-exports
187 COFFExports("coff-exports", cl::desc("Display the PE/COFF export table"));
189 // -coff-directives
191 COFFDirectives("coff-directives",
194 // -coff-basereloc
196 COFFBaseRelocs("coff-basereloc",
199 // -coff-debug-directory
201 COFFDebugDirectory("coff-debug-directory",
204 // -macho-data-in-code
206 MachODataInCode("macho-data-in-code",
209 // -macho-indirect-symbols
211 MachOIndirectSymbols("macho-indirect-symbols",
214 // -macho-linker-options
216 MachOLinkerOptions("macho-linker-options",
219 // -macho-segment
221 MachOSegment("macho-segment",
224 // -macho-version-min
226 MachOVersionMin("macho-version-min",
229 // -macho-dysymtab
231 MachODysymtab("macho-dysymtab",
234 // -stackmap
239 // -version-info
241 VersionInfo("version-info",
243 cl::alias VersionInfoShort("V", cl::desc("Alias for -version-info"),
246 cl::opt<bool> SectionGroups("elf-section-groups",
248 cl::alias SectionGroupsShort("g", cl::desc("Alias for -elf-sections-groups"),
251 "elf-hash-histogram",
253 cl::alias HashHistogramShort("I", cl::desc("Alias for -elf-hash-histogram"),
257 Output("elf-output-style", cl::desc("Specify ELF dump style"),
285 if (Input == "-") in reportError()
292 if (Input == "-") in reportError()
299 if (Input == "-") in reportError()
323 /// @brief Creates an format-specific object file dumper.
330 if (Obj->isCOFF()) in createDumper()
332 if (Obj->isELF()) in createDumper()
334 if (Obj->isMachO()) in createDumper()
345 reportError(Obj->getFileName(), EC); in dumpObject()
349 outs() << "File: " << Obj->getFileName() << "\n"; in dumpObject()
350 outs() << "Format: " << Obj->getFileFormatName() << "\n"; in dumpObject()
352 (llvm::Triple::ArchType)Obj->getArch()) << "\n"; in dumpObject()
353 outs() << "AddressSize: " << (8 * Obj->getBytesInAddress()) << "bit\n"; in dumpObject()
354 Dumper->printLoadName(); in dumpObject()
358 Dumper->printFileHeaders(); in dumpObject()
360 Dumper->printSections(); in dumpObject()
362 Dumper->printRelocations(); in dumpObject()
364 Dumper->printDynamicRelocations(); in dumpObject()
366 Dumper->printSymbols(); in dumpObject()
368 Dumper->printDynamicSymbols(); in dumpObject()
370 Dumper->printUnwindInfo(); in dumpObject()
372 Dumper->printDynamicTable(); in dumpObject()
374 Dumper->printNeededLibraries(); in dumpObject()
376 Dumper->printProgramHeaders(); in dumpObject()
378 Dumper->printHashTable(); in dumpObject()
380 Dumper->printGnuHashTable(); in dumpObject()
382 Dumper->printVersionInfo(); in dumpObject()
383 if (Obj->isELF()) { in dumpObject()
384 if (Obj->getArch() == llvm::Triple::arm) in dumpObject()
386 Dumper->printAttributes(); in dumpObject()
387 if (isMipsArch(Obj->getArch())) { in dumpObject()
389 Dumper->printMipsPLTGOT(); in dumpObject()
391 Dumper->printMipsABIFlags(); in dumpObject()
393 Dumper->printMipsReginfo(); in dumpObject()
395 Dumper->printMipsOptions(); in dumpObject()
398 Dumper->printGroupSections(); in dumpObject()
400 Dumper->printHashHistogram(); in dumpObject()
402 if (Obj->isCOFF()) { in dumpObject()
404 Dumper->printCOFFImports(); in dumpObject()
406 Dumper->printCOFFExports(); in dumpObject()
408 Dumper->printCOFFDirectives(); in dumpObject()
410 Dumper->printCOFFBaseReloc(); in dumpObject()
412 Dumper->printCOFFDebugDirectory(); in dumpObject()
414 Dumper->printCodeViewDebugInfo(); in dumpObject()
416 Dumper->mergeCodeViewTypes(CVTypes); in dumpObject()
418 if (Obj->isMachO()) { in dumpObject()
420 Dumper->printMachODataInCode(); in dumpObject()
422 Dumper->printMachOIndirectSymbols(); in dumpObject()
424 Dumper->printMachOLinkerOptions(); in dumpObject()
426 Dumper->printMachOSegment(); in dumpObject()
428 Dumper->printMachOVersionMin(); in dumpObject()
430 Dumper->printMachODysymtab(); in dumpObject()
433 Dumper->printStackMap(); in dumpObject()
437 static void dumpArchive(const Archive *Arc) { in dumpArchive()
439 for (auto &Child : Arc->children(Err)) { in dumpArchive()
447 reportError(Arc->getFileName(), Buf); in dumpArchive()
454 reportError(Arc->getFileName(), readobj_error::unrecognized_file_format); in dumpArchive()
457 reportError(Arc->getFileName(), std::move(Err)); in dumpArchive()
462 for (const MachOUniversalBinary::ObjectForArch &Obj : UBinary->objects()) { in dumpMachOUniversalBinary()
471 reportError(UBinary->getFileName(), Buf); in dumpMachOUniversalBinary()
473 else if (Expected<std::unique_ptr<Archive>> AOrErr = Obj.getAsArchive()) in dumpMachOUniversalBinary()
487 if (Archive *Arc = dyn_cast<Archive>(&Binary)) in dumpInput()
505 // Register the target printer for --version. in main()
512 opts::InputFilenames.push_back("-"); in main()