Index: src/tools/mac/dump_syms/dump_syms_tool.cc |
diff --git a/src/tools/mac/dump_syms/dump_syms_tool.cc b/src/tools/mac/dump_syms/dump_syms_tool.cc |
index 54f29226116dfc4669b434d4a892d01080d6f421..6f68457b4c1632379a35551b0170595fdd31b440 100644 |
--- a/src/tools/mac/dump_syms/dump_syms_tool.cc |
+++ b/src/tools/mac/dump_syms/dump_syms_tool.cc |
@@ -51,11 +51,13 @@ using std::vector; |
struct Options { |
Options() |
- : srcPath(), dsymPath(), arch(), cfi(true), handle_inter_cu_refs(true) {} |
+ : srcPath(), dsymPath(), arch(), header_only(false), |
+ cfi(true), handle_inter_cu_refs(true) {} |
string srcPath; |
string dsymPath; |
const NXArchInfo *arch; |
+ bool header_only; |
bool cfi; |
bool handle_inter_cu_refs; |
}; |
@@ -151,6 +153,9 @@ static bool Start(const Options &options) { |
} |
} |
+ if (options.header_only) |
+ return dump_symbols.WriteSymbolFileHeader(std::cout); |
+ |
// Read the primary file into a Breakpad Module. |
Module* module = NULL; |
if (!dump_symbols.ReadSymbolData(&module)) |
@@ -189,6 +194,7 @@ static void Usage(int argc, const char *argv[]) { |
fprintf(stderr, "Output a Breakpad symbol file from a Mach-o file.\n"); |
fprintf(stderr, "Usage: %s [-a ARCHITECTURE] [-c] [-g dSYM path] " |
"<Mach-o file>\n", argv[0]); |
+ fprintf(stderr, "\t-i: Output module header information only.\n"); |
fprintf(stderr, "\t-a: Architecture type [default: native, or whatever is\n"); |
fprintf(stderr, "\t in the file, if it contains only one architecture]\n"); |
fprintf(stderr, "\t-g: Debug symbol file (dSYM) to dump in addition to the " |
@@ -204,8 +210,11 @@ static void SetupOptions(int argc, const char *argv[], Options *options) { |
extern int optind; |
signed char ch; |
- while ((ch = getopt(argc, (char * const *)argv, "a:g:chr?")) != -1) { |
+ while ((ch = getopt(argc, (char * const *)argv, "ia:g:chr?")) != -1) { |
switch (ch) { |
+ case 'i': |
+ options->header_only = true; |
+ break; |
case 'a': { |
const NXArchInfo *arch_info = |
google_breakpad::BreakpadGetArchInfoFromName(optarg); |