diff options
author | Lee Campbell <leecam@google.com> | 2015-11-09 11:01:17 -0800 |
---|---|---|
committer | Lee Campbell <leecam@google.com> | 2015-11-09 15:25:07 -0800 |
commit | ff9800f4449276ec5e76e36f443073b882ea514a (patch) | |
tree | d0235b830e4248294d013659141511de9587764b | |
parent | 7c722c2f269de217c29a38f69b96e1dba9752873 (diff) | |
download | google-breakpad-ff9800f4449276ec5e76e36f443073b882ea514a.tar.gz |
dump_syms: Add -v verbose flagbrillo-m9-releasebrillo-m9-devbrillo-m8-releasebrillo-m8-devbrillo-m10-releasebrillo-m10-dev
dump_syms generates a lot of warnings.
This CL puts logging behind a command line flag
BUG=25460551
Change-Id: Iab2ea1a255b64c07b2bf9c748947e328e9688f7c
-rw-r--r-- | src/tools/linux/dump_syms/dump_syms.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/tools/linux/dump_syms/dump_syms.cc b/src/tools/linux/dump_syms/dump_syms.cc index c8ade33a..11617883 100644 --- a/src/tools/linux/dump_syms/dump_syms.cc +++ b/src/tools/linux/dump_syms/dump_syms.cc @@ -28,6 +28,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include <stdio.h> +#include <unistd.h> #include <cstring> #include <iostream> @@ -44,6 +45,7 @@ int usage(const char* self) { fprintf(stderr, "Options:\n"); fprintf(stderr, " -c Do not generate CFI section\n"); fprintf(stderr, " -r Do not handle inter-compilation unit references\n"); + fprintf(stderr, " -v Verbose logging. Print all warnings to stderr\n"); return 1; } @@ -53,6 +55,7 @@ int main(int argc, char **argv) { bool cfi = true; bool handle_inter_cu_refs = true; + bool log_to_stderr = false; int arg_index = 1; while (arg_index < argc && strlen(argv[arg_index]) > 0 && argv[arg_index][0] == '-') { @@ -60,6 +63,8 @@ int main(int argc, char **argv) { cfi = false; } else if (strcmp("-r", argv[arg_index]) == 0) { handle_inter_cu_refs = false; + } else if (strcmp("-v", argv[arg_index]) == 0) { + log_to_stderr = true; } else { return usage(argv[0]); } @@ -68,6 +73,12 @@ int main(int argc, char **argv) { if (arg_index == argc) return usage(argv[0]); + // Save stderr so it can be used below. + FILE* saved_stderr = fdopen(dup(STDERR_FILENO), "w"); + if (!log_to_stderr) { + freopen("/dev/null", "w", stderr); + } + const char* binary; std::vector<string> debug_dirs; binary = argv[arg_index]; @@ -80,7 +91,7 @@ int main(int argc, char **argv) { SymbolData symbol_data = cfi ? ALL_SYMBOL_DATA : NO_CFI; google_breakpad::DumpOptions options(symbol_data, handle_inter_cu_refs); if (!WriteSymbolFile(binary, debug_dirs, options, std::cout)) { - fprintf(stderr, "Failed to write symbol file.\n"); + fprintf(saved_stderr, "Failed to write symbol file.\n"); return 1; } |