From b4acf7300a4ca3423ca36fe227e9bc2e23f25b9f Mon Sep 17 00:00:00 2001
From: Bert Maher <bertrand@fb.com>
Date: Fri, 24 Oct 2014 14:09:42 -0700
Subject: [pprof] Produce global profile unless thread-local profile requested

Currently pprof will print output for all threads if a single thread is not
specified, but this doesn't play well with many output formats (e.g., any of
the dot-based formats).  Instead, default to printing just the overall profile
when no specific thread is requested.

This resolves #157.
---
 bin/pprof | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/bin/pprof b/bin/pprof
index 5a4c6cd..df503ae 100755
--- a/bin/pprof
+++ b/bin/pprof
@@ -404,7 +404,7 @@ sub Init() {
              "edgefraction=f" => \$main::opt_edgefraction,
              "maxdegree=i"    => \$main::opt_maxdegree,
              "focus=s"        => \$main::opt_focus,
-             "thread=i"       => \$main::opt_thread,
+             "thread=s"       => \$main::opt_thread,
              "ignore=s"       => \$main::opt_ignore,
              "scale=i"        => \$main::opt_scale,
              "heapcheck"      => \$main::opt_heapcheck,
@@ -707,7 +707,8 @@ sub Main() {
   }
   if (defined($data->{threads})) {
     foreach my $thread (sort { $a <=> $b } keys(%{$data->{threads}})) {
-      if (!defined($main::opt_thread) || $main::opt_thread == $thread) {
+      if (defined($main::opt_thread) &&
+          ($main::opt_thread eq '*' || $main::opt_thread == $thread)) {
         my $thread_profile = $data->{threads}{$thread};
         FilterAndPrint($thread_profile, $symbols, $libs, $thread);
       }
-- 
cgit v0.12