Lines Matching refs:cl

101 cl::SubCommand DumpSubcommand("dump", "Dump MSF and CodeView debug info");
102 cl::SubCommand BytesSubcommand("bytes", "Dump raw bytes from the PDB file");
104 cl::SubCommand DiaDumpSubcommand("diadump",
107 cl::SubCommand
111 cl::SubCommand
114 cl::SubCommand
118 cl::SubCommand MergeSubcommand("merge",
121 cl::SubCommand ExplainSubcommand("explain",
124 cl::SubCommand ExportSubcommand("export",
127 cl::OptionCategory TypeCategory("Symbol Type Options");
128 cl::OptionCategory FilterCategory("Filtering and Sorting Options");
129 cl::OptionCategory OtherOptions("Other Options");
131 cl::ValuesClass ChunkValues = cl::values(
157 cl::list<std::string> InputFilenames(cl::Positional,
158 cl::desc("<input PDB files>"),
159 cl::OneOrMore, cl::sub(DiaDumpSubcommand));
161 cl::opt<bool> Native("native", cl::desc("Use native PDB reader instead of DIA"),
162 cl::sub(DiaDumpSubcommand));
164 static cl::opt<bool>
165 ShowClassHierarchy("hierarchy", cl::desc("Show lexical and class parents"),
166 cl::sub(DiaDumpSubcommand));
167 static cl::opt<bool> NoSymIndexIds(
169 cl::desc("Don't show any SymIndexId fields (overrides -hierarchy)"),
170 cl::sub(DiaDumpSubcommand));
172 static cl::opt<bool>
174 cl::desc("When dumping a SymIndexId, dump the full details of the "
176 cl::sub(DiaDumpSubcommand));
178 static cl::opt<bool> Enums("enums", cl::desc("Dump enum types"),
179 cl::sub(DiaDumpSubcommand));
180 static cl::opt<bool> Pointers("pointers", cl::desc("Dump enum types"),
181 cl::sub(DiaDumpSubcommand));
182 static cl::opt<bool> UDTs("udts", cl::desc("Dump udt types"),
183 cl::sub(DiaDumpSubcommand));
184 static cl::opt<bool> Compilands("compilands",
185 cl::desc("Dump compiland information"),
186 cl::sub(DiaDumpSubcommand));
187 static cl::opt<bool> Funcsigs("funcsigs",
188 cl::desc("Dump function signature information"),
189 cl::sub(DiaDumpSubcommand));
190 static cl::opt<bool> Arrays("arrays", cl::desc("Dump array types"),
191 cl::sub(DiaDumpSubcommand));
192 static cl::opt<bool> VTShapes("vtshapes", cl::desc("Dump virtual table shapes"),
193 cl::sub(DiaDumpSubcommand));
194 static cl::opt<bool> Typedefs("typedefs", cl::desc("Dump typedefs"),
195 cl::sub(DiaDumpSubcommand));
199 cl::list<std::string> InputFilenames(cl::Positional,
200 cl::desc("<input PDB files>"),
201 cl::OneOrMore, cl::sub(PrettySubcommand));
203 cl::opt<bool> InjectedSources("injected-sources",
204 cl::desc("Display injected sources"),
205 cl::cat(OtherOptions), cl::sub(PrettySubcommand));
206 cl::opt<bool> ShowInjectedSourceContent(
208 cl::desc("When displaying an injected source, display the file content"),
209 cl::cat(OtherOptions), cl::sub(PrettySubcommand));
211 cl::list<std::string> WithName(
213 cl::desc("Display any symbol or type with the specified exact name"),
214 cl::cat(TypeCategory), cl::ZeroOrMore, cl::sub(PrettySubcommand));
216 cl::opt<bool> Compilands("compilands", cl::desc("Display compilands"),
217 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
218 cl::opt<bool> Symbols("module-syms",
219 cl::desc("Display symbols for each compiland"),
220 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
221 cl::opt<bool> Globals("globals", cl::desc("Dump global symbols"),
222 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
223 cl::opt<bool> Externals("externals", cl::desc("Dump external symbols"),
224 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
225 cl::list<SymLevel> SymTypes(
226 "sym-types", cl::desc("Type of symbols to dump (default all)"),
227 cl::cat(TypeCategory), cl::sub(PrettySubcommand), cl::ZeroOrMore,
228 cl::values(
234 cl::opt<bool>
236 cl::desc("Display all types (implies -classes, -enums, -typedefs)"),
237 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
238 cl::opt<bool> Classes("classes", cl::desc("Display class types"),
239 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
240 cl::opt<bool> Enums("enums", cl::desc("Display enum types"),
241 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
242 cl::opt<bool> Typedefs("typedefs", cl::desc("Display typedef types"),
243 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
244 cl::opt<bool> Funcsigs("funcsigs", cl::desc("Display function signatures"),
245 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
246 cl::opt<bool> Pointers("pointers", cl::desc("Display pointer types"),
247 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
248 cl::opt<bool> Arrays("arrays", cl::desc("Display arrays"),
249 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
250 cl::opt<bool> VTShapes("vtshapes", cl::desc("Display vftable shapes"),
251 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
253 cl::opt<SymbolSortMode> SymbolOrder(
254 "symbol-order", cl::desc("symbol sort order"),
255 cl::init(SymbolSortMode::None),
256 cl::values(clEnumValN(SymbolSortMode::None, "none",
261 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
263 cl::opt<ClassSortMode> ClassOrder(
264 "class-order", cl::desc("Class sort order"), cl::init(ClassSortMode::None),
265 cl::values(
279 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
281 cl::opt<ClassDefinitionFormat> ClassFormat(
282 "class-definitions", cl::desc("Class definition format"),
283 cl::init(ClassDefinitionFormat::All),
284 cl::values(
292 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
293 cl::opt<uint32_t> ClassRecursionDepth(
294 "class-recurse-depth", cl::desc("Class recursion depth (0=no limit)"),
295 cl::init(0), cl::cat(TypeCategory), cl::sub(PrettySubcommand));
297 cl::opt<bool> Lines("lines", cl::desc("Line tables"), cl::cat(TypeCategory),
298 cl::sub(PrettySubcommand));
299 cl::opt<bool>
300 All("all", cl::desc("Implies all other options in 'Symbol Types' category"),
301 cl::cat(TypeCategory), cl::sub(PrettySubcommand));
303 cl::opt<uint64_t> LoadAddress(
305 cl::desc("Assume the module is loaded at the specified address"),
306 cl::cat(OtherOptions), cl::sub(PrettySubcommand));
307 cl::opt<bool> Native("native", cl::desc("Use native PDB reader instead of DIA"),
308 cl::cat(OtherOptions), cl::sub(PrettySubcommand));
309 cl::opt<cl::boolOrDefault>
311 cl::desc("Override use of color (default = isatty)"),
312 cl::cat(OtherOptions), cl::sub(PrettySubcommand));
313 cl::list<std::string> ExcludeTypes(
314 "exclude-types", cl::desc("Exclude types by regular expression"),
315 cl::ZeroOrMore, cl::cat(FilterCategory), cl::sub(PrettySubcommand));
316 cl::list<std::string> ExcludeSymbols(
317 "exclude-symbols", cl::desc("Exclude symbols by regular expression"),
318 cl::ZeroOrMore, cl::cat(FilterCategory), cl::sub(PrettySubcommand));
319 cl::list<std::string> ExcludeCompilands(
320 "exclude-compilands", cl::desc("Exclude compilands by regular expression"),
321 cl::ZeroOrMore, cl::cat(FilterCategory), cl::sub(PrettySubcommand));
323 cl::list<std::string> IncludeTypes(
325 cl::desc("Include only types which match a regular expression"),
326 cl::ZeroOrMore, cl::cat(FilterCategory), cl::sub(PrettySubcommand));
327 cl::list<std::string> IncludeSymbols(
329 cl::desc("Include only symbols which match a regular expression"),
330 cl::ZeroOrMore, cl::cat(FilterCategory), cl::sub(PrettySubcommand));
331 cl::list<std::string> IncludeCompilands(
333 cl::desc("Include only compilands those which match a regular expression"),
334 cl::ZeroOrMore, cl::cat(FilterCategory), cl::sub(PrettySubcommand));
335 cl::opt<uint32_t> SizeThreshold(
336 "min-type-size", cl::desc("Displays only those types which are greater "
338 cl::init(0), cl::cat(FilterCategory), cl::sub(PrettySubcommand));
339 cl::opt<uint32_t> PaddingThreshold(
340 "min-class-padding", cl::desc("Displays only those classes which have at "
342 cl::init(0), cl::cat(FilterCategory), cl::sub(PrettySubcommand));
343 cl::opt<uint32_t> ImmediatePaddingThreshold(
345 cl::desc("Displays only those classes which have at least the specified "
348 cl::init(0), cl::cat(FilterCategory), cl::sub(PrettySubcommand));
350 cl::opt<bool> ExcludeCompilerGenerated(
352 cl::desc("Don't show compiler generated types and symbols"),
353 cl::cat(FilterCategory), cl::sub(PrettySubcommand));
354 cl::opt<bool>
356 cl::desc("Don't show symbols from system libraries"),
357 cl::cat(FilterCategory), cl::sub(PrettySubcommand));
359 cl::opt<bool> NoEnumDefs("no-enum-definitions",
360 cl::desc("Don't display full enum definitions"),
361 cl::cat(FilterCategory), cl::sub(PrettySubcommand));
364 cl::OptionCategory FileOptions("Module & File Options");
367 cl::OptionCategory MsfBytes("MSF File Options");
368 cl::OptionCategory DbiBytes("Dbi Stream Options");
369 cl::OptionCategory PdbBytes("PDB Stream Options");
370 cl::OptionCategory Types("Type Options");
371 cl::OptionCategory ModuleCategory("Module Options");
376 cl::opt<std::string> DumpBlockRangeOpt(
377 "block-range", cl::value_desc("start[-end]"),
378 cl::desc("Dump binary data from specified range of blocks."),
379 cl::sub(BytesSubcommand), cl::cat(MsfBytes));
381 cl::opt<std::string>
382 DumpByteRangeOpt("byte-range", cl::value_desc("start[-end]"),
383 cl::desc("Dump binary data from specified range of bytes"),
384 cl::sub(BytesSubcommand), cl::cat(MsfBytes));
386 cl::list<std::string>
387 DumpStreamData("stream-data", cl::CommaSeparated, cl::ZeroOrMore,
388 cl::desc("Dump binary data from specified streams. Format "
390 cl::sub(BytesSubcommand), cl::cat(MsfBytes));
392 cl::opt<bool> NameMap("name-map", cl::desc("Dump bytes of PDB Name Map"),
393 cl::sub(BytesSubcommand), cl::cat(PdbBytes));
394 cl::opt<bool> Fpm("fpm", cl::desc("Dump free page map"),
395 cl::sub(BytesSubcommand), cl::cat(MsfBytes));
397 cl::opt<bool> SectionContributions("sc", cl::desc("Dump section contributions"),
398 cl::sub(BytesSubcommand), cl::cat(DbiBytes));
399 cl::opt<bool> SectionMap("sm", cl::desc("Dump section map"),
400 cl::sub(BytesSubcommand), cl::cat(DbiBytes));
401 cl::opt<bool> ModuleInfos("modi", cl::desc("Dump module info"),
402 cl::sub(BytesSubcommand), cl::cat(DbiBytes));
403 cl::opt<bool> FileInfo("files", cl::desc("Dump source file info"),
404 cl::sub(BytesSubcommand), cl::cat(DbiBytes));
405 cl::opt<bool> TypeServerMap("type-server", cl::desc("Dump type server map"),
406 cl::sub(BytesSubcommand), cl::cat(DbiBytes));
407 cl::opt<bool> ECData("ec", cl::desc("Dump edit and continue map"),
408 cl::sub(BytesSubcommand), cl::cat(DbiBytes));
410 cl::list<uint32_t>
412 cl::desc("Dump the type record with the given type index"),
413 cl::ZeroOrMore, cl::CommaSeparated, cl::sub(BytesSubcommand),
414 cl::cat(TypeCategory));
415 cl::list<uint32_t>
416 IdIndex("id", cl::desc("Dump the id record with the given type index"),
417 cl::ZeroOrMore, cl::CommaSeparated, cl::sub(BytesSubcommand),
418 cl::cat(TypeCategory));
420 cl::opt<uint32_t> ModuleIndex(
422 cl::desc(
424 cl::Optional, cl::sub(BytesSubcommand), cl::cat(ModuleCategory));
425 cl::opt<bool> ModuleSyms("syms", cl::desc("Dump symbol record substream"),
426 cl::sub(BytesSubcommand), cl::cat(ModuleCategory));
427 cl::opt<bool> ModuleC11("c11-chunks", cl::Hidden,
428 cl::desc("Dump C11 CodeView debug chunks"),
429 cl::sub(BytesSubcommand), cl::cat(ModuleCategory));
430 cl::opt<bool> ModuleC13("chunks",
431 cl::desc("Dump C13 CodeView debug chunk subsection"),
432 cl::sub(BytesSubcommand), cl::cat(ModuleCategory));
433 cl::opt<bool> SplitChunks(
435 cl::desc(
437 cl::sub(BytesSubcommand), cl::cat(ModuleCategory));
438 cl::list<std::string> InputFilenames(cl::Positional,
439 cl::desc("<input PDB files>"),
440 cl::OneOrMore, cl::sub(BytesSubcommand));
446 cl::OptionCategory MsfOptions("MSF Container Options");
447 cl::OptionCategory TypeOptions("Type Record Options");
448 cl::OptionCategory SymbolOptions("Symbol Options");
449 cl::OptionCategory MiscOptions("Miscellaneous Options");
452 cl::opt<bool> DumpSummary("summary", cl::desc("dump file summary"),
453 cl::cat(MsfOptions), cl::sub(DumpSubcommand));
454 cl::opt<bool> DumpStreams("streams",
455 cl::desc("dump summary of the PDB streams"),
456 cl::cat(MsfOptions), cl::sub(DumpSubcommand));
457 cl::opt<bool> DumpStreamBlocks(
459 cl::desc("Add block information to the output of -streams"),
460 cl::cat(MsfOptions), cl::sub(DumpSubcommand));
461 cl::opt<bool> DumpSymbolStats(
463 cl::desc("Dump a detailed breakdown of symbol usage/size for each module"),
464 cl::cat(MsfOptions), cl::sub(DumpSubcommand));
465 cl::opt<bool> DumpTypeStats(
467 cl::desc("Dump a detailed breakdown of type usage/size"),
468 cl::cat(MsfOptions), cl::sub(DumpSubcommand));
469 cl::opt<bool> DumpUdtStats(
471 cl::desc("Dump a detailed breakdown of S_UDT record usage / stats"),
472 cl::cat(MsfOptions), cl::sub(DumpSubcommand));
475 cl::opt<bool> DumpTypes("types",
476 cl::desc("dump CodeView type records from TPI stream"),
477 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
478 cl::opt<bool> DumpTypeData(
480 cl::desc("dump CodeView type record raw bytes from TPI stream"),
481 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
482 cl::opt<bool>
484 cl::desc("dump statistics on the number and size of types "
486 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
488 cl::opt<bool> DumpTypeExtras("type-extras",
489 cl::desc("dump type hashes and index offsets"),
490 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
492 cl::opt<bool> DontResolveForwardRefs(
494 cl::desc("When dumping type records for classes, unions, enums, and "
496 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
498 cl::list<uint32_t> DumpTypeIndex(
499 "type-index", cl::ZeroOrMore, cl::CommaSeparated,
500 cl::desc("only dump types with the specified hexadecimal type index"),
501 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
503 cl::opt<bool> DumpIds("ids",
504 cl::desc("dump CodeView type records from IPI stream"),
505 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
506 cl::opt<bool>
508 cl::desc("dump CodeView type record raw bytes from IPI stream"),
509 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
511 cl::opt<bool> DumpIdExtras("id-extras",
512 cl::desc("dump id hashes and index offsets"),
513 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
514 cl::list<uint32_t> DumpIdIndex(
515 "id-index", cl::ZeroOrMore, cl::CommaSeparated,
516 cl::desc("only dump ids with the specified hexadecimal type index"),
517 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
519 cl::opt<bool> DumpTypeDependents(
521 cl::desc("In conjunection with -type-index and -id-index, dumps the entire "
524 cl::cat(TypeOptions), cl::sub(DumpSubcommand));
527 cl::opt<bool> DumpGlobals("globals", cl::desc("dump Globals symbol records"),
528 cl::cat(SymbolOptions), cl::sub(DumpSubcommand));
529 cl::opt<bool> DumpGlobalExtras("global-extras", cl::desc("dump Globals hashes"),
530 cl::cat(SymbolOptions), cl::sub(DumpSubcommand));
531 cl::list<std::string> DumpGlobalNames(
533 cl::desc(
535 cl::cat(SymbolOptions), cl::sub(DumpSubcommand), cl::ZeroOrMore);
536 cl::opt<bool> DumpPublics("publics", cl::desc("dump Publics stream data"),
537 cl::cat(SymbolOptions), cl::sub(DumpSubcommand));
538 cl::opt<bool> DumpPublicExtras("public-extras",
539 cl::desc("dump Publics hashes and address maps"),
540 cl::cat(SymbolOptions), cl::sub(DumpSubcommand));
541 cl::opt<bool>
543 cl::desc("dump public / global common record stream"),
544 cl::cat(SymbolOptions), cl::sub(DumpSubcommand));
545 cl::opt<bool> DumpSymbols("symbols", cl::desc("dump module symbols"),
546 cl::cat(SymbolOptions), cl::sub(DumpSubcommand));
548 cl::opt<bool>
550 cl::desc("dump CodeView symbol record raw bytes"),
551 cl::cat(SymbolOptions), cl::sub(DumpSubcommand));
553 cl::opt<bool> DumpFpo("fpo", cl::desc("dump FPO records"),
554 cl::cat(SymbolOptions), cl::sub(DumpSubcommand));
557 cl::opt<bool> DumpModules("modules", cl::desc("dump compiland information"),
558 cl::cat(FileOptions), cl::sub(DumpSubcommand));
559 cl::opt<bool> DumpModuleFiles(
561 cl::desc("Dump the source files that contribute to each module's."),
562 cl::cat(FileOptions), cl::sub(DumpSubcommand));
563 cl::opt<bool> DumpLines(
565 cl::desc("dump source file/line information (DEBUG_S_LINES subsection)"),
566 cl::cat(FileOptions), cl::sub(DumpSubcommand));
567 cl::opt<bool> DumpInlineeLines(
569 cl::desc("dump inlinee line information (DEBUG_S_INLINEELINES subsection)"),
570 cl::cat(FileOptions), cl::sub(DumpSubcommand));
571 cl::opt<bool> DumpXmi(
573 cl::desc(
575 cl::cat(FileOptions), cl::sub(DumpSubcommand));
576 cl::opt<bool> DumpXme(
578 cl::desc(
580 cl::cat(FileOptions), cl::sub(DumpSubcommand));
581 cl::opt<uint32_t> DumpModi("modi", cl::Optional,
582 cl::desc("For all options that iterate over "
584 cl::cat(FileOptions), cl::sub(DumpSubcommand));
585 cl::opt<bool> JustMyCode("jmc", cl::Optional,
586 cl::desc("For all options that iterate over modules, "
588 cl::cat(FileOptions), cl::sub(DumpSubcommand));
591 cl::opt<bool> DumpNamedStreams("named-streams",
592 cl::desc("dump PDB named stream table"),
593 cl::cat(MiscOptions), cl::sub(DumpSubcommand));
595 cl::opt<bool> DumpStringTable("string-table", cl::desc("dump PDB String Table"),
596 cl::cat(MiscOptions), cl::sub(DumpSubcommand));
597 cl::opt<bool> DumpStringTableDetails("string-table-details",
598 cl::desc("dump PDB String Table Details"),
599 cl::cat(MiscOptions),
600 cl::sub(DumpSubcommand));
602 cl::opt<bool> DumpSectionContribs("section-contribs",
603 cl::desc("dump section contributions"),
604 cl::cat(MiscOptions),
605 cl::sub(DumpSubcommand));
606 cl::opt<bool> DumpSectionMap("section-map", cl::desc("dump section map"),
607 cl::cat(MiscOptions), cl::sub(DumpSubcommand));
608 cl::opt<bool> DumpSectionHeaders("section-headers",
609 cl::desc("Dump image section headers"),
610 cl::cat(MiscOptions), cl::sub(DumpSubcommand));
612 cl::opt<bool> RawAll("all", cl::desc("Implies most other options."),
613 cl::cat(MiscOptions), cl::sub(DumpSubcommand));
615 cl::list<std::string> InputFilenames(cl::Positional,
616 cl::desc("<input PDB files>"),
617 cl::OneOrMore, cl::sub(DumpSubcommand));
621 cl::opt<std::string>
622 YamlPdbOutputFile("pdb", cl::desc("the name of the PDB file to write"),
623 cl::sub(YamlToPdbSubcommand));
625 cl::opt<std::string> InputFilename(cl::Positional,
626 cl::desc("<input YAML file>"), cl::Required,
627 cl::sub(YamlToPdbSubcommand));
631 cl::opt<bool> All("all",
632 cl::desc("Dump everything we know how to dump."),
633 cl::sub(PdbToYamlSubcommand), cl::init(false));
634 cl::opt<bool> NoFileHeaders("no-file-headers",
635 cl::desc("Do not dump MSF file headers"),
636 cl::sub(PdbToYamlSubcommand), cl::init(false));
637 cl::opt<bool> Minimal("minimal",
638 cl::desc("Don't write fields with default values"),
639 cl::sub(PdbToYamlSubcommand), cl::init(false));
641 cl::opt<bool> StreamMetadata(
643 cl::desc("Dump the number of streams and each stream's size"),
644 cl::sub(PdbToYamlSubcommand), cl::init(false));
645 cl::opt<bool> StreamDirectory(
647 cl::desc("Dump each stream's block map (implies -stream-metadata)"),
648 cl::sub(PdbToYamlSubcommand), cl::init(false));
649 cl::opt<bool> PdbStream("pdb-stream",
650 cl::desc("Dump the PDB Stream (Stream 1)"),
651 cl::sub(PdbToYamlSubcommand), cl::init(false));
653 cl::opt<bool> StringTable("string-table", cl::desc("Dump the PDB String Table"),
654 cl::sub(PdbToYamlSubcommand), cl::init(false));
656 cl::opt<bool> DbiStream("dbi-stream",
657 cl::desc("Dump the DBI Stream Headers (Stream 2)"),
658 cl::sub(PdbToYamlSubcommand), cl::init(false));
660 cl::opt<bool> TpiStream("tpi-stream",
661 cl::desc("Dump the TPI Stream (Stream 3)"),
662 cl::sub(PdbToYamlSubcommand), cl::init(false));
664 cl::opt<bool> IpiStream("ipi-stream",
665 cl::desc("Dump the IPI Stream (Stream 5)"),
666 cl::sub(PdbToYamlSubcommand), cl::init(false));
668 cl::opt<bool> PublicsStream("publics-stream",
669 cl::desc("Dump the Publics Stream"),
670 cl::sub(PdbToYamlSubcommand), cl::init(false));
673 cl::opt<bool> DumpModules("modules", cl::desc("dump compiland information"),
674 cl::cat(FileOptions), cl::sub(PdbToYamlSubcommand));
675 cl::opt<bool> DumpModuleFiles("module-files", cl::desc("dump file information"),
676 cl::cat(FileOptions),
677 cl::sub(PdbToYamlSubcommand));
678 cl::list<ModuleSubsection> DumpModuleSubsections(
679 "subsections", cl::ZeroOrMore, cl::CommaSeparated,
680 cl::desc("dump subsections from each module's debug stream"), ChunkValues,
681 cl::cat(FileOptions), cl::sub(PdbToYamlSubcommand));
682 cl::opt<bool> DumpModuleSyms("module-syms", cl::desc("dump module symbols"),
683 cl::cat(FileOptions),
684 cl::sub(PdbToYamlSubcommand));
686 cl::list<std::string> InputFilename(cl::Positional,
687 cl::desc("<input PDB file>"), cl::Required,
688 cl::sub(PdbToYamlSubcommand));
692 cl::list<std::string> InputFilenames(cl::Positional,
693 cl::desc("<input PDB files>"),
694 cl::OneOrMore, cl::sub(MergeSubcommand));
695 cl::opt<std::string>
696 PdbOutputFile("pdb", cl::desc("the name of the PDB file to write"),
697 cl::sub(MergeSubcommand));
701 cl::list<std::string> InputFilename(cl::Positional,
702 cl::desc("<input PDB file>"), cl::Required,
703 cl::sub(ExplainSubcommand));
705 cl::list<uint64_t> Offsets("offset", cl::desc("The file offset to explain"),
706 cl::sub(ExplainSubcommand), cl::OneOrMore);
708 cl::opt<InputFileType> InputType(
709 "input-type", cl::desc("Specify how to interpret the input file"),
710 cl::init(InputFileType::PDBFile), cl::Optional, cl::sub(ExplainSubcommand),
711 cl::values(clEnumValN(InputFileType::PDBFile, "pdb-file",
724 cl::list<std::string> InputFilename(cl::Positional,
725 cl::desc("<input PDB file>"), cl::Required,
726 cl::sub(ExportSubcommand));
727 cl::opt<std::string> OutputFile("out",
728 cl::desc("The file to write the stream to"),
729 cl::Required, cl::sub(ExportSubcommand));
730 cl::opt<std::string>
731 Stream("stream", cl::Required,
732 cl::desc("The index or name of the stream whose contents to export"),
733 cl::sub(ExportSubcommand));
734 cl::opt<bool> ForceName("name",
735 cl::desc("Force the interpretation of -stream as a "
737 cl::sub(ExportSubcommand), cl::Optional,
738 cl::init(false));
1065 const bool UseColor = opts::pretty::ColorOutput == cl::BOU_UNSET
1067 : opts::pretty::ColorOutput == cl::BOU_TRUE;
1417 static void simplifyChunkList(llvm::cl::list<opts::ModuleSubsection> &Chunks) {
1430 cl::ParseCommandLineOptions(Argc, Argv, "LLVM PDB Dumper\n");