diff --git a/src/tools/linux/dump_syms/dump_syms.cc b/src/tools/linux/dump_syms/dump_syms.cc
index c8ade33..1161788 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 @@
   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 @@
 
   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 @@
       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 @@
   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 @@
   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;
   }
 
